防止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目录文件越来越多。