Risposte:
Se non lo sai, è molto probabile che i globi siano la risposta giusta per te.
Ad ogni modo, devi capire:
Questa funzione è stata introdotta di recente in Bower e non è ancora documentata (AFAIK). Descrive essenzialmente il moduleType, che indica per quale tecnologia del modulo il pacchetto deve essere consumato (vedi sopra).
In questo momento, non ha alcun effetto a parte l'impostazione della moduleTypeproprietà inbower.json file del pacchetto.
Vedi https://github.com/bower/bower/pull/934 per la richiesta pull originale.
Alcuni punti aggiuntivi, per rispondere ai commenti:
moduleTypeproprietà, il che significa che le persone sono tecnicamente autorizzate a utilizzare tutto il valore che desiderano, inclusoangularjs se si sentono inclini a farlonon-interoperable/proprietary moduleTypes(pensa compositore, angolare, ecc.) - il che è facilmente comprensibile, ma ancora una volta, nulla impedisce davvero alle persone di usare ilmoduleType valore che desideranoyui moduleType, quindi, ci sono "eccezioni" da fare, supponendo che facciano parte di un piano concordatoCosa farei se dovessi creare un pacchetto per un gestore di pacchetti non elencato e pubblicarlo su Bower?
Vorrei creare un modulo es6 e usare / patch es6-transpiler per produrre il formato del pacchetto di cui ho bisogno. Quindi vorrei / e:
es6come amoduleTypeDisclaimer: non ho esperienza di vita reale nella creazione di moduli angularjs.
angularjsa se stesso, potrei usare globals, sì, ma leggi il mio aggiornamento. Spero che aiuti.
Sto usando anche bower initper la prima volta.
Le opzioni dovrebbero fare riferimento ai diversi modi per modulare un codice JavaScript:
define, come requirejs.require.Nel mio caso ho scritto un dflow del modulo Node.js ma sto usando browserify per creare un dist / dflow.js file che esporta un dflow globale var: quindi ho selezionato i globali .
Il comando che ho usato per browserify dflow come a oggetto globale della finestra era
browserify -s dflow -e index.js -o dist/dflow.js
L'ho cambiato perché preferisco usare richiedi anche all'interno del browser, quindi ora sto usando
browserify -r ./index.js:dflow -o dist/dflow.js
e così ho cambiato bower.moduleType in nodo nel mio file bower.json .
La motivazione principale è che se il nome del mio modulo ha un trattino, ad esempio la vista del flusso del mio progetto , devo camelizzare il nome globale in flowView .
Questo nuovo approccio ha altri due vantaggi:
${npm_package_name}variabile e scrivere una volta lo script che utilizzo per navigare.Questo è un altro argomento, ma vale davvero la pena considerare quanto sia utile quest'ultimo vantaggio: fammi condividere l' npm.scripts.browserifyattributo che uso nel mio package.json
"browserify": "browserify -r ./index.js:${npm_package_name} -o dist/${npm_package_name}.js"
define(function(require, exports, module) { "use strict"; module.exports = { Collection: require("./collection"), View: require('./view') }; });
Solo per riferimento, questo è esattamente ciò che specifica Bower per quanto riguarda i tipi di modulo:
Il tipo di modulo definito nel
mainfile JavaScript. Può essere una o una matrice delle seguenti stringhe:
globals: Modulo JavaScript che si aggiunge allo spazio dei nomi globale, usandowindow.namespaceothis.namespacesintassiamd: Modulo JavaScript compatibile con AMD, come RequireJS , utilizzando ladefine()sintassinode: Modulo JavaScript compatibile con nodo e CommonJS mediante lamodule.exportssintassies6: Modulo JavaScript compatibile con i moduli ECMAScript 6 , utilizzandoexporteimportsintassiyui: Modulo JavaScript compatibile con i moduli YUI , usando laYUI.add()sintassi
Link pertinente: https://github.com/bower/spec/blob/master/json.md#moduletype