Respostas:
Se você não sabe, é bem provável que os globais sejam a resposta certa para você.
De qualquer forma, você precisa entender:
Esse recurso foi introduzido muito recentemente no caramanchão e ainda não está documentado (AFAIK). Descreve essencialmente o moduleType
, que indica para qual tecnologia de módulo o pacote deve ser consumido (veja acima).
No momento, ele não tem nenhum efeito além de definir a moduleType
propriedade no bower.json
arquivo do pacote.
Consulte https://github.com/bower/bower/pull/934 para obter a solicitação de recebimento original.
Alguns pontos adicionais, para responder aos comentários:
moduleType
propriedade - o que significa que as pessoas têm permissão técnica para usar o valor que desejarem, inclusive angularjs
se se sentirem inclinadas a fazê-lo.non-interoperable/proprietary moduleTypes
(pense em compositor, angular etc.) - o que é facilmente compreensível, mas, novamente, nada realmente impede as pessoas de usarem o moduleType
valor que desejamyui moduleType
, portanto, existem "exceções" a serem feitas, supondo que elas façam parte de um plano concertadoO que eu faria se fosse o autor de um pacote para um gerenciador de pacotes não listado e o publicasse no bower?
Eu criaria um módulo es6 e usaria / patch es6-transpiler para gerar o formato de pacote necessário. Então eu / /:
es6
comomoduleType
Isenção de responsabilidade: não tenho experiência na vida real na criação de módulos angularjs.
angularjs
ele, eu poderia usar globals
sim, mas ler minha atualização. Espero que ajude.
Também estou usando bower init
pela primeira vez.
As opções devem se referir às diferentes maneiras de modularizar algum código JavaScript:
define
, como requirejs.require
.No meu caso, escrevi um dflow do módulo Node.js., mas estou usando o browserify para criar um arquivo dist / dflow.js que exporta uma var do dflow global : portanto, selecionei globais .
O comando que eu usei para procurar o dflow como um objeto global da janela foi
browserify -s dflow -e index.js -o dist/dflow.js
Eu mudei porque eu prefiro usar o exigir também dentro do navegador, então agora estou usando
browserify -r ./index.js:dflow -o dist/dflow.js
e então mudei o bower.moduleType para nó no meu arquivo bower.json .
A principal motivação foi que, se o nome do meu módulo tiver um traço, por exemplo , a visualização do fluxo do meu projeto , eu preciso camelizar o nome global no flowView .
Essa nova abordagem tem dois outros benefícios:
${npm_package_name}
variável e escrever assim que o script usado para navegar.Este é outro tópico, mas vale a pena considerar como é útil o último benefício: deixe-me compartilhar o npm.scripts.browserify
atributo que uso no meu 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') }; });
Apenas para referência, é exatamente isso que o caramanchão especifica em relação aos tipos de módulos:
O tipo de módulo definido no
main
arquivo JavaScript. Pode ser uma ou uma matriz das seguintes seqüências de caracteres:
globals
: Módulo JavaScript que adiciona ao namespace global, usandowindow.namespace
outhis.namespace
sintaxeamd
: Módulo JavaScript compatível com AMD, como RequireJS , usandodefine()
sintaxenode
: Módulo JavaScript compatível com nó e CommonJS usandomodule.exports
sintaxees6
: Módulo JavaScript compatível com os módulos ECMAScript 6 , usandoexport
eimport
sintaxeyui
: Módulo JavaScript compatível com os módulos YUI , usandoYUI.add()
sintaxe
Link relevante: https://github.com/bower/spec/blob/master/json.md#moduletype