防止vue cli删除dist中的所有文件

Posted

技术标签:

【中文标题】防止vue cli删除dist中的所有文件【英文标题】:Prevent vue cli from deleting all files in dist 【发布时间】:2020-09-13 07:58:41 【问题描述】:

我正在开发 vue 项目并将 dist 文件夹与 git 同步。这在使用 webpack 时效果很好。但是,我已经转移到 @vue/cli --- using vue create myProject 而不是 vue init webpack myProj

问题是每次我运行 npm run build 时,它都会删除 dist 文件夹并重新创建它——所有 .git 和其他文件都消失了。

如何防止新版本删除 dist 文件夹中所需的文件而只更新更改?

【问题讨论】:

【参考方案1】:

假设你有自己的清理旧资源的机制,vue-cli-service build 带有一个名为--no-clean 的选项,以指示编译器在构建项目之前不要删除“dist”目录。

因此,将开关/选项添加到 package.json 上的 build 脚本中:


  "scripts": 
    "build": "vue-cli-service build --no-clean"
  

或者,如果您使用 Yarn,您可以在脚本名称之后传递其他参数。因此无需对脚本进行任何更改。运行它:

yarn build --no-clean

【讨论】:

试过 npm run build --no-clean --- 删除旧文件(在 dist 文件夹中创建 test.txt 进行测试) 这样不行。您必须向vue-cli-service 提供--no-clean,所以最好的方法是将其作为"build": "vue-cli-service build --no-clean", 放入package.json,然后您就可以运行npm run build @mayank1513 感谢@KoviNET 澄清这一点。我更新了答案以包含它。【参考方案2】:

感谢 Yom S 的回答。文档 here 确实提供了保留旧版本的方法。

但是,您不能像npm build --no-clean 那样使用--no-clean。要从终端使用 no clean 模式,您需要编写以下命令

./node_modules/.bin/vue-cli-service --no-clean

更新

您也可以在 package.json 中添加 --no-clean

【讨论】:

其实我觉得你可以做到。您只需要稍微不同地传递参数,给定 npm 脚本 build: vue-cli-service build 您可以在 -- 之后传递其他标志,因此在 CLI 中您将调用 npm run build -- --no-clean 并且 npm 会将 -- 之后的参数传递给实际脚本命令。

以上是关于防止vue cli删除dist中的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

使用vue-cli构建 webpack打包工具时,生产环境下,每次build时,删除dist目录,并重新生成,以防dist目录文件越来越多。

如何更改 ember-cli 中的 dist 文件夹路径?

Vue CLI 3 防止某些输出文件的缓存破坏

vue-cli4中的配置项

vue-cli4中的配置项

vue-cli用本地代理请求数据可以,但是打包之后的dist中的htmlproxy没有起作用,打包没有错误这情况怎么办