Я создаю свой первый компонент Bower. После запуска bower init сценарий спрашивает меня: «Какие типы модулей предоставляет этот пакет?» с этими параметрами:
- и
- es6
- глобалы
- узел
в чем разница между этими вариантами?
Я создаю свой первый компонент Bower. После запуска bower init сценарий спрашивает меня: «Какие типы модулей предоставляет этот пакет?» с этими параметрами:
в чем разница между этими вариантами?
Если вы не знаете, вполне вероятно, что globals - правильный ответ.
В любом случае вам нужно понимать:
Эта функция была представлена в bower совсем недавно и еще не задокументирована (AFAIK). По сути, он описывает moduleType, который указывает, для какой модульной технологии пакет предназначен для использования (см. Выше).
Прямо сейчас это не имеет никакого эффекта, кроме установки свойства moduleType в bower.json файле пакета.
См. https://github.com/bower/bower/pull/934 для исходного запроса на вытягивание.
Несколько дополнительных моментов, чтобы ответить на комментарии:
moduleType не выполняется проверка - это означает, что людям технически разрешено использовать любое значение, которое они хотят для него, включая angularjs, если они чувствуют склонность к этомуnon-interoperable/proprietary moduleTypes (подумайте, композитор, angular, и т. д.) - что легко понять, но опять же, ничто действительно не мешает людям использовать значение moduleType, которое они хотятyui moduleType, поэтому должны быть сделаны «исключения», предполагая, что они часть согласованного планаЧто бы я сделал, если бы написал пакет для неуказанного в списке диспетчера пакетов и опубликовал его на bower?
Я бы написал модуль es6 и использовал / patch es6-transpiler для вывода нужного мне формата пакета. Тогда я бы либо / и:
es6 в качестве moduleTypeОтказ от ответственности: у меня нет реального опыта создания модулей angularjs.
angularjs, я мог бы использовать globals, да, но прочтите мое обновление. Надеюсь, это поможет.
- person Mangled Deutz; 30.04.2014
Я тоже впервые использую bower init.
Параметры должны относиться к различным способам модуляции некоторого кода JavaScript:
define, например requirejs.require.В моем случае я написал модуль Node.js dflow, но я использую browserify для создания Файл dist / dflow.js, который экспортирует глобальную переменную dflow: поэтому я выбрал globals.
Команда, которую я использовал для просмотра dflow как глобального объекта window, была
browserify -s dflow -e index.js -o dist/dflow.js
Я изменил его, потому что предпочитаю использовать require также внутри браузера, поэтому теперь я использую
browserify -r ./index.js:dflow -o dist/dflow.js
и поэтому я изменил bower.moduleType на node в моем файле bower.json.
Основная мотивация заключалась в том, что если в моем имени модуля есть тире, например, мой проект flow-view мне нужно преобразовать глобальное имя в flowView.
У этого нового подхода есть еще два преимущества:
${npm_package_name} и написать один раз сценарий, который я использую для просмотра.Это другая тема, но стоит подумать о том, насколько полезно последнее преимущество: позвольте мне поделиться атрибутом npm.scripts.browserify, который я использую в моем 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') }; });
- person Doron Segal; 03.04.2015
Для справки, это именно то, что bower указывает в отношении типов модулей:
Тип модуля, определенный в
mainфайле JavaScript. Может быть одной или массивом следующих строк:
globals: модуль JavaScript, который добавляет в глобальное пространство имен, используя синтаксисwindow.namespaceилиthis.namespaceamd: модуль JavaScript, совместимый с AMD, например RequireJS, с использованием синтаксисаdefine().node: модуль JavaScript, совместимый с node и CommonJS с использованием синтаксисаmodule.exports.es6: модуль JavaScript, совместимый с модулями ECMAScript 6, использующимиexportиimportсинтаксисyui: модуль JavaScript, совместимый с модулями YUI, с использованиемYUI.add()синтаксиса.
Соответствующая ссылка: https://github.com/bower/spec/blob/master/json.md#moduletype