Мне нужно перенести устаревшую систему на webpack-4
с gulp
. Я застрял в объединении нескольких скриптов в один. Моя цель - добиться чистой конкатенации без дополнительного персонала, созданного веб-пакетом. Таким образом, результат от gulp должен равняться результату от webpack.
Я использовал webpack-concat-plugin.
Вот мой webpack.config.js
const ConcatPlugin = require('webpack-concat-plugin');
module.exports = [
{
plugins: [
new ConcatPlugin(
{
fileName: "js/bootstrap/bootstrap.js",
filesToConcat: [
"./js/bootstrap/button.js",
"./js/bootstrap/collapse.js",
"./js/bootstrap/datetimepicker.js", // this script requires jQuery and Moment.js
"./js/bootstrap/dropdown.js",
"./js/bootstrap/modal.js",
"./js/bootstrap/multiselect.js",
"./js/bootstrap/tooltip.js",
"./js/bootstrap/popover.js",
"./js/bootstrap/select2.js",
"./js/bootstrap/tab.js",
"./js/bootstrap/transition.js"
]
}
)
}]
Это создает пакет, но внутри у меня есть дополнительный код, например:
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
и зависимости (например, для jQuery, как показано ниже)
/***/ }),
/***/ "./node_modules/jquery/dist/jquery.js":
/*!********************************************!*\
!*** ./node_modules/jquery/dist/jquery.js ***!
\********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n * jQuery JavaScript Library v2.2.4\n * http://jquery.com/\n *\n *
Это означает, что веб-пакет добавил зависимость по умолчанию, определенную в require
в ./js/bootstrap/datetimepicker.js
. Конечно добавлены также зависимости от moment.js.
Мой пакет ужасно большой, потому что он содержит дополнительные библиотеки, которые я не хотел включать. У меня есть внешние зависимости от jQuery
и moment.js
Я попытался использовать веб-пакет внешние:
externals: {
"jquery": "jQuery"
},
но все же jQuery включен.
Есть ли способ сделать чистую конкатенацию для веб-пакета без загрузочного кода веб-пакета?
Спасибо
Рафаль