问题描述
我想要达到的目标
我正在尝试将区域设置文件从 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 (将#修改为@)