Vue.js CopyWebpackPlugin在运行dev服务器时不复制文件 我正在努力实现的目标

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服务器时

我正在尝试将区域设置文件从Thread工作区同步到monorepo中的多个Vue应用程序,以便它们可以与每个应用程序中的i18next一起使用。它们需要:

  • 在开发过程中保持同步
  • 在更新翻译文件时自动更新
  • 最终将它们放在dist文件夹中,以便与应用程序的其余部分一起部署(当文件位于公用文件夹中时,应自动进行部署)
为了使捆绑包的大小保持较小,我不能只捆绑整个软件包——文件需要用原始文件名单独复制,并存储在每个应用程序的公用文件夹和UI库中

问题 我正在尝试配置,但我不是

  • 在启动dev服务器时,只需从translation/locales获取到public/locales的初始副本
  • 或者,当我尝试启用
    writeToDisk
    选项时,dev服务器会陷入一个循环,并且它开始用热重新加载文件淹没
    dist
    文件夹
my vue.config.js* *根据的说明,它包括对纱线工作区的参考

使用此配置运行
纱线服务
,将导致循环。正确的文件会复制到
/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