Відповіді:
Якщо ви не знаєте, цілком вірогідні глобальні питання - це правильна відповідь для вас.
У будь-якому випадку вам потрібно зрозуміти:
Ця функція була запроваджена зовсім недавно на луці і ще не документально підтверджена (AFAIK). Він по суті описує те moduleType
, в якому зазначено, для якої модульної технології передбачається споживати пакет (див. Вище).
Наразі це не має жодного ефекту, крім встановлення moduleType
властивості у bower.json
файлі пакету.
Див. Https://github.com/bower/bower/pull/934 для отримання оригінального запиту.
Кілька додаткових моментів, щоб відповісти на коментарі:
moduleType
власності - це означає, що людям технічно дозволяється використовувати будь-яку цінність, яку вони хочуть для неї, в тому числі, angularjs
якщо вони відчувають схильність до цього.non-interoperable/proprietary moduleTypes
(думаю , композитор, кутовий і т.д.) - що легко зрозуміти, але ще раз, ніщо не заважає людям , використовуючиmoduleType
значення вони хочутьyui moduleType
, тому існують "винятки", якщо вони є частиною узгодженого плануЩо б я зробив, якби створити пакет для не переліченого менеджера пакунків і опублікувати його на шафі?
Я б написав модуль es6 та використовував / виправляв es6-транспілятор для виведення потрібного мені формату пакету. Тоді я б / або:
es6
якmoduleType
Відмова: У мене немає досвіду створення авторських модулів angularjs.
angularjs
самого себе, я можу використовувати globals
, так, але прочитати своє оновлення. Сподіваюся, що це допомагає.
Я також bower init
вперше використовую .
Параметри повинні посилатися на різні способи модуляції деяких кодів JavaScript:
define
, як і вимагає.require
.У моєму випадку я написав модуль dode.js dflow, але я використовую Browserify для створення файлу dist / dflow.js, який експортує глобальний var dflow : тому я вибрав глобалі .
Команда, якою я переглядав dflow як глобальний об'єкт вікна, була
browserify -s dflow -e index.js -o dist/dflow.js
Я змінив це, тому що я вважаю за краще використовувати також потрібно всередині браузера, тому зараз я користуюся
browserify -r ./index.js:dflow -o dist/dflow.js
і тому я змінив bower.moduleType на вузол у своєму файлі bower.json .
Основна мотивація полягала в тому, що якщо в назви мого модуля є тире, наприклад, у моєму проектному потоковому перегляді , мені потрібно поставити глобальне ім'я в flowView .
Цей новий підхід має дві інші переваги:
${npm_package_name}
змінною та записати один раз скрипт, який я використовую для перегляду.Це ще одна тема, але, дійсно, варто подумати, наскільки корисна остання перевага: дозвольте мені поділитися npm.scripts.browserify
атрибутом, який я використовую в своєму пакеті.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') }; });
Тільки для довідки, це саме те, що визначає бауер щодо типів модулів:
Тип модуля, визначений у
main
файлі JavaScript. Може бути один або масив з таких рядків:
globals
: Модуль JavaScript, який додає до глобального простору імен, використовуючиwindow.namespace
абоthis.namespace
синтаксисamd
: Модуль JavaScript, сумісний з AMD, як і RequireJS , з використаннямdefine()
синтаксисуnode
: Модуль JavaScript, сумісний з вузлом та CommonJS з використаннямmodule.exports
синтаксисуes6
: Модуль JavaScript, сумісний з модулями ECMAScript 6 , з використаннямexport
таimport
синтаксисомyui
: Модуль JavaScript, сумісний з модулями YUI , використовуючиYUI.add()
синтаксис
Відповідне посилання: https://github.com/bower/spec/blob/master/json.md#moduletype