【问题标题】:Prevent vue cli from deleting all files in dist防止vue cli删除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 文件夹中所需的文件而只更新更改?

【问题讨论】:

    标签: vue.js github vue-cli-3


    【解决方案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 会将 -- 之后的参数传递给实际脚本命令。
    猜你喜欢
    • 2017-11-26
    • 2013-06-05
    • 2021-09-09
    • 2020-09-10
    • 1970-01-01
    • 1970-01-01
    • 2019-06-25
    • 2019-10-05
    • 1970-01-01
    相关资源
    最近更新 更多