Я знаю, що це стара публікація, але вважаю, що було б корисно згадати, що завантажувач сценаріїв webpack може бути корисним і в цьому випадку. З документів webpack:
"скрипт: виконує файл JavaScript один раз у глобальному контексті (наприклад, у тезі сценарію), вимагає, щоб не був проаналізований."
http://webpack.github.io/docs/list-of-loaders.html
https://github.com/webpack/script-loader
Я вважаю це особливо корисним при міграції старих процесів збірки, які поєднують файли постачальників JS та файли програм разом. Словом попередження є те, що завантажувач сценаріїв, здається, працює лише через перевантаження require()
і не працює, наскільки я можу зрозуміти, вказаний у файлі webpack.config. Хоча багато хто стверджує, що перевантаження require
є поганою практикою, це може бути дуже корисним для об'єднання сценарію постачальника та програми в одному наборі, і одночасно викриваючи JS Globals, які не потрібно перетворювати на додаткові пакети веб-пакетів. Наприклад:
require('script!jquery-cookie/jquery.cookie');
require('script!history.js/scripts/bundled-uncompressed/html4+html5/jquery.history');
require('script!momentjs');
require('./scripts/main.js');
Це зробить $ .cookie, History та moment глобально доступними всередині та за межами цього набору, та об’єднає ці бібліотеки постачальників із скриптом main.js та всіма його require
файлами d.
Також корисно з цією технікою:
resolve: {
extensions: ["", ".js"],
modulesDirectories: ['node_modules', 'bower_components']
},
plugins: [
new webpack.ResolverPlugin(
new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"])
)
]
який використовує Bower, перегляне main
файл у кожній require
d бібліотеці package.json. У наведеному вище прикладі у History.js не main
вказано файл, тому шлях до нього необхідний.
new
передwebpack.ProvidePlugin
webpack.github.io/docs/list-of-plugins.html