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 moduleTypepropriedade no bower.jsonarquivo 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:
moduleTypepropriedade - o que significa que as pessoas têm permissão técnica para usar o valor que desejarem, inclusive angularjsse 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 moduleTypevalor 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 / /:
es6comomoduleTypeIsenção de responsabilidade: não tenho experiência na vida real na criação de módulos angularjs.
angularjsele, eu poderia usar globalssim, mas ler minha atualização. Espero que ajude.
Também estou usando bower initpela 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.browserifyatributo 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
mainarquivo JavaScript. Pode ser uma ou uma matriz das seguintes seqüências de caracteres:
globals: Módulo JavaScript que adiciona ao namespace global, usandowindow.namespaceouthis.namespacesintaxeamd: Módulo JavaScript compatível com AMD, como RequireJS , usandodefine()sintaxenode: Módulo JavaScript compatível com nó e CommonJS usandomodule.exportssintaxees6: Módulo JavaScript compatível com os módulos ECMAScript 6 , usandoexporteimportsintaxeyui: 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