Не удалось перейти на Webpack 4.
Я предоставляю библиотеку, и моя цель - получить файлы libs
, core
, extensions
(как мне удалось сделать в веб-пакете 3).
Поэтому я создал 3 точки входа, которые импортируют весь мой код (чтобы связать его).
Это часть конфигурации webpack 3:
const outputFileName = `MyInfra`;
...
entry: {
"myLibs": './infra/libs",
"myCore": './infra/core",
"MyExt1": './infra/ext1",
},
output: {
path: path.join(__dirname, 'dist'),
filename: `${outputFileName}.js`,
sourceMapFilename: `maps/${outputFileName}.map.js`,
libraryTarget: 'umd',
umdNamedDefine: true
},
plugins: [
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.optimize.CommonsChunkPlugin({ names: ['myCore',
'myLibs'], filename: `${outputFileName}.js` })
],
Это создает 3 файла, которые я хотел, и только в файле libs
добавляется код webpackBootstrap
.
От моего пользователя я ожидаю включить libs
, core
и extension
в его html
в таком порядке.
Я пытаюсь перейти на splitChunks.cacheGroups
- но безуспешно.
Ближайший результат, которого мне удалось достичь, это: (Я изменил имена точек входа без запятых)
optimization:{
splitChunks: {
cacheGroups:{
default: false,
myLibs: { name:"libs", test: "myLibs", chunks: "initial", enforce:true, reuseExistingChunk: true},
myCore: { name:"core", test: "myCore", chunks: "initial", enforce:true, reuseExistingChunk: true},
myExt1: { name:"ext1", test: "myExt1", chunks: "initial", enforce:true, reuseExistingChunk: true}
}
}
}
В результате получается 6 файлов, а не 3. libs.js
, myLibs.js
, core.js
, myCore.js
, ext1.js
, myExt1.js
.. Все файлы my
занимают всего 7 Кбайт с кодом webpackBootstrap
.. каждый код будет загружать модули, если только все 3 libs
core
и ext1
будут включены первыми.
Это одна из проблему меня есть .. Почему у нас есть эти дополнительные 2 файла.И почему мне нужно включить все файлы, чтобы загрузить модуль libs
?
А потом я продолжил и включил все свои скрипты и запустил демонстрационное приложение.
Я нашелЕще одна вещь, которая изменилась и теперь перестала работать.
В моей инфраструктуре я предоставил объект конфигурации, который пользователь может изменить, который я импортирую в свои классы и действую соответствующим образом.Я заметил, что импорт объекта конфигурации возвращал другой экземпляр объекта, который импортировал пользователь.
const Defaults = {
...
option : value,
...
}
export default Defaults;
Раньше он работал в веб-пакете 3.6, как и ожидалось.
Пожалуйста, помогите мне здесь.. Я бьюсь головой об этих 2 проблемах.