TL; DR;
Как переименовать webpackChunkName
с помощью vue-cli
в режиме --target lib
?
Привет, ребята,
Я создаю библиотеку для Vue JS с vue-cli
.
Эта строка выводит мою библиотеку в umd , umd.min & common-js :
vue-cli-service build --target lib --name mylib ./src/components/mylib.vue --dest ./dist
Поскольку в моей библиотеке есть асинхронные модули (локали i18n в файлах json), я хочу изменить Webpack для управления выводом всех файлов в конечную папку dist, но это не удалось.
Перед тем, как я выведу все файлы локалей для повышения производительности, у меня было следующее:
dist/
|- mylib.common.js
|- mylib.umd.js
|- mylib.umd.min.js
|- mylib.css
Теперь, когда локаль импортируется по запросу:
import(/* webpackInclude: /\.json$/, webpackChunkName: "[request]" */ `./i18n/${locale}`)
.then(response => (this.texts = response.default))
Это вывод:
dist/
|- mylib.common.js
|- mylib.umd.js
|- mylib.umd.min.js
|- mylib.css
|- en.common.min.js
|- en.umd.js
|- en.umd.min.js
|- es.common.min.js
|- es.umd.js
|- es.umd.min.js
|- de.common.min.js
|- de.umd.js
|- de.umd.min.js
...
В идеале я хотел бы получить только один файл локали для всех версий моей библиотеки, так как сгенерированные файлы локали точно такие же для umd & common-js и упорядочены в папке вот так:
dist/
|- mylib.common.js
|- mylib.umd.js
|- mylib.umd.min.js
|- mylib.css
|- i18n
|- en.js
|- es.js
|- de.js
...
Я попытался настроить импорт webpack magic comment
, но получил 3 папки i18n, такие как:
import(/* webpackInclude: /\.json$/, webpackChunkName: "i18n/[request]" */ `./i18n/${locale}`)
.then(response => (this.texts = response.default))
dist/
|- mylib.common.
|- i18n
|- en.js
|- mylib.umd.
|- i18n
|- en.js
|- mylib.umd.min.
|- i18n
|- en.js
Когда я добавляю это к своему vue.config.js
, он изменяет сборку для моей документации на docs/
(vue-cli-service build
), но он не работает для моей библиотеки на dist/
(vue-cli-service build --target lib
):
configureWebpack: {
output: {
filename: '[name].testing-bundle.js',
chunkFilename: '[name].testing-bundle.js'
}
},