运行开发服务器时 CopyWebpackPlugin 不复制文件

问题描述

我想要达到的目标

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

  • 在开发过程中保持同步
  • 翻译文件更新时自动更新
  • 最终将它们放在 dist 文件夹中,以便它们与应用程序的其余部分一起部署(当文件位于公共文件夹中时,这应该自动发生)

为了保持包的大小,我不能只捆绑整个包 - 文件需要使用原始文件名单独复制,并存储在每个应用程序和 UI 库的公共文件夹中。

>

问题

我正在尝试配置 CopyWebpackPlugin,但我要么

  • 刚刚在启动开发服务器时从翻译/区域设置到公共/区域设置的初始副本
  • 或者当我尝试启用 writeToDisk 选项时,开发服务器最终陷入循环,而且它开始用热重载文件淹没 dist 文件夹。

我的 vue.config.js *

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",],}),

*根据 https://webpack.js.org/plugins/copy-webpack-plugin/ 的说明,它包含对纱线工作区的引用

使用此配置运行 yarn serve 会导致循环。正确的文件被复制到 ./public 文件夹,但同时,它会创建 ./dist 文件夹并用 ...hot-update.json 文件淹没它。

如果我第一次运行 yarn build,语言环境文件会被复制到 ./public 文件夹,但不会复制到 ./dist 文件夹(所以它似乎在最后复制文件的过程,所以最新的文件不包含在 ./dist 文件夹

当前文件夹结构

Monorepo
└── packages
    ├── applications
    │   ├── app1
    │   │   ├── public
    │   │   └── dist
    │   ├── app2
    │   └── ...
    └── common
        ├── translations
        │   └── locales
        │       ├── en-GB
        │       │   └── common.json
        │       └── de-DE
        ├── ui
        └── ...

版本

@vue/cli 4.5.12
[email protected]
[email protected]

如果您能帮助我们完成此设置,我们将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)