У меня была такая же проблема.
Моя проблема заключалась в том, что я использовал browserify для создания SOURCEMAP большого пакета (~ 92 тыс. Строк). browserify app.js -d -o bundle.js
.
Я решил это, разделив мой bundle.js
.
Я экспортировал все модули узлов в отдельный файл (modules.js
), добавив --require [module name]
:
browserify -r react -r lodash -r three > build/modules.js
, а затем создайте bundle.js
без внешних модулей, добавив --external [module name]
.
browserify -t babelify -x react -x lodash -x three src/app.js > build/bundle.js
(-t babelify
, потому что я использовал react
/ JSX
в своем проекте.)
ПРИМЕЧАНИЕ : Вы должны включить module.js
в свой html до bundle.js
.
Мой bundle.js
уменьшен с ~ 92000 до ~ 26000 строк; -)
EDIT : Для создания пакета без внешних модулей (node_modules
) вы также можете использовать --no-bundle-external
вместо [-x NODE_MODULE_NAME]*
.
EDIT # 2 : Когда вы используете в своем проекте модуль, который содержит много подмодулей, -r|-x [MAIN_MODULE_NAME]
не потребует | исключать подмодули.
Пример с react-bootstrap
:
react-bootstrap
содержит много подмодулей, react-bootstrap/lib/[submodule]
.
browserify -r react-bootstrap > build/modules.js
не требует, например, модуль Button
(react-bootstrap/lib/Button
). Итак ...
... если вы используете
browserify --no-bundle-external src/app.js > build/bundle.js
... вы не сможете использовать Button
в своем приложении, потому что --no-bundle-external
исключает все модули узлов, включая подмодули. Так что не забудьте потребовать все необходимые подмодули для:
browserify -r react-bootstrap -r react-bootstrap/lib/Button > build/modules.js
ПРИМЕЧАНИЕ : Кроме того, чтобы повысить производительность, вы можете использовать exorcist
, чтобы поместить исходную карту в отдельный файл. Установите его с помощью:
npm install --save-dev exorcist
и измените команду browserify
:
browserify --no-bundle-external src/app.js | exorcist build/bundle.js.map > build/bundle.js
Спасибо smhg за подсказку с excorcist
. И покажи его ответ для более подробной информации.