browserify требуют в требуемом файле не может найти модуль
Я пытаюсь упаковать свои угловые js в один скрипт, используя browserify. Это хорошо работает, когда я использую require
из моего основного файла app.js
, но когда один из модулей требуется в app.js
содержит свой собственный require
, зависимость не включена в мой комплект.
Напомним, в app.js
(ссылка на линию в репо):
require("splash-header");
// more code here
require("social-button-directive");
// more code here
У socialButtons.js нет зависимостей.
browserify --list app.js
не перечисляет splashHeader.js
как положено, а комплектация производится через browserify app.js -o bundle.js
не включает в себя JavaScript SocialButton. Поэтому, конечно, если я в любом случае пытаюсь загрузить сайт, я получаю Uncaught Error: Cannot find module 'social-button-directive'
у splashHeader's require('social-button-directive')
,
Также важно отметить, что я сопоставляю имена модулей с местоположениями файлов, используя опцию "browser" в package.json
и использование browerify-shim, поскольку ни один из моих модулей не совместим с Common-js.
соответствующий раздел package.json:
"dependencies": {
"browserify": "~9.0.3",
"browserify-shim": "~3.8.3"
},
"browserify": {
"transform": [
"browserify-shim"
]
},
"browserify-shim": {
"splash-header": {
"depends": "angular",
"exports": "angular.module('splash-header').name"
},
"social-button-directive": {
"depends": "angular",
"exports": "angular.module('social-button-directive').name"
}
},
"browser":{
"splash-header": "./ng-modules/splashHeader/splashHeader.js",
"social-button-directive": "./ng-modules/socialButtons/socialButtons.js"
}
Я был на этом все утро и совершенно тупик. Я сократил оскорбительный проект, чтобы служить минимальным примером проблемы. Чтобы проверить это, просто установите clone и npm. Если вы смотрите подробно, вот рабочая / не рабочая версия diff.
Я попытался загрузить субмодуль по относительному пути (require('./ng-modules/socialButtons/socialButtons.js
) `), не повезло. Возможно, я неправильно подбил вещи? Мой подход к этому исходит из этой статьи.
РЕДАКТИРОВАТЬ: Это, безусловно, моя конфигурация browserify-shim. Все работает после преобразования модулей в commonjs и удаления параметров browserfy-shim из package.json. Я думаю, я просто должен был написать все это, чтобы закрепить это. знак равно