Vue.js CopyWebpackPlugin在运行dev服务器时不复制文件 我正在努力实现的目标
我正在尝试将区域设置文件从Thread工作区同步到monorepo中的多个Vue应用程序,以便它们可以与每个应用程序中的i18next一起使用。它们需要:Vue.js CopyWebpackPlugin在运行dev服务器时不复制文件 我正在努力实现的目标,vue.js,webpack,i18next,copy-webpack-plugin,Vue.js,Webpack,I18next,Copy Webpack Plugin,我正在尝试将区域设置文件从Thread工作区同步到monorepo中的多个Vue应用程序,以便它们可以与每个应用程序中的i18next一起使用。它们需要: 在开发过程中保持同步 在更新翻译文件时自动更新 最终将它们放在dist文件夹中,以便与应用程序的其余部分一起部署(当文件位于公用文件夹中时,应自动进行部署) 为了使捆绑包的大小保持较小,我不能只捆绑整个软件包——文件需要用原始文件名单独复制,并存储在每个应用程序的公用文件夹和UI库中 问题 我正在尝试配置,但我不是 在启动dev服务器时
- 在开发过程中保持同步
- 在更新翻译文件时自动更新
- 最终将它们放在dist文件夹中,以便与应用程序的其余部分一起部署(当文件位于公用文件夹中时,应自动进行部署)
- 在启动dev服务器时,只需从translation/locales获取到public/locales的初始副本
- 或者,当我尝试启用
选项时,dev服务器会陷入一个循环,并且它开始用热重新加载文件淹没writeToDisk
文件夹dist
纱线服务
,将导致循环。正确的文件会复制到/public
文件夹,但同时,它会创建/dist
文件夹,并将…hot update.json
文件充斥其中
如果我第一次运行warn build
,则区域设置文件会复制到/public
文件夹,但不会复制到/dist
文件夹(因此,它似乎会在进程结束时复制文件,因此最新的文件不会包含在/dist
文件夹中)
当前文件夹结构
版本
如果您有任何帮助,使此设置正常工作,我们将不胜感激
module.exports = {
devServer: {
writeToDisk: true,
},
configureWebpack: {
plugins: [
new CopyPlugin({
patterns: [
{
from: `${path.dirname(
require.resolve(`@namespace/translations/package.json`)
)}/locales`,
to: "./public/locales",
toType: "dir",
},
],
}),
],
},
Monorepo
└── packages
├── applications
│ ├── app1
│ │ ├── public
│ │ └── dist
│ ├── app2
│ └── ...
└── common
├── translations
│ └── locales
│ ├── en-GB
│ │ └── common.json
│ └── de-DE
├── ui
└── ...
@vue/cli 4.5.12
webpack@4.46.0
copy-webpack-plugin@6.4.1