【问题标题】:Laravel mix versioning doesn't remove old built filesLaravel 混合版本控制不会删除旧的构建文件
【发布时间】:2017-11-05 07:05:54
【问题描述】:

我正在使用 Laravel 5.4 和 mix 来对我的 javascript 和 scss 文件进行版本控制。 问题是:它不会清理以前构建的文件,而只是添加一个具有不同文件名的新文件,即app.9d3e179e85922aad6ccf.js

在我开始的一个新项目中,我没有这个问题。 Mix 正确地将旧文件替换为最新构建的版本。

有什么地方可以改变吗?

【问题讨论】:

    标签: laravel webpack laravel-mix


    【解决方案1】:

    这是 laravel-mix 库的问题,此处无法解决。 GitHub 上有许多未解决的问题都涉及到相同的问题。在官方库得到永久修复之前,您可以查看最新的一些解决方法。

    https://github.com/JeffreyWay/laravel-mix/issues/814

    万一将来链接失效时可能的解决方案。

    目前几乎没有可能的解决方案。

    1. 让文件进入默认目录。

      js mix.js('./resources/assets/js/app.js', 'public/js/app.js')

    2. 在构建新的之前告诉 npm 删除你的 bundle 文件夹

    3. 使用clean-webpack-pluginhttps://github.com/johnagan/clean-webpack-plugin

    【讨论】:

      【解决方案2】:

      现在看起来旧文件被覆盖了,无论如何我仍然遇到mix-manifest.json文件没有删除已删除文件的问题,所以如果其他人遇到类似的问题,这就是我的方法解决了。​​

      通过webpackConfig 方法,我使用来自webpack 的splitChunksPlugin,当模块之间有足够的共同代码时,它通过创建额外的块来减少块之间的重复。

      这意味着在某些情况下,在 dev 和 prod 环境之间动态添加的块的总数是不同的,因为在开发中文件更大,所以更容易在文件之间共享更多代码。

      因此,当构建删除文件时 mix-manifest 文件未更新这一事实导致了一些问题(尤其是在与其他人一起工作时),我想分享一下我是如何解决这个问题的。

      1。 Laravel-Mix-Clean

      为了避免文件过多,我将在每次构建时删除所有文件。我不得不更改文件夹结构并将正确的路径传递给方法,但这并没有导致很多问题。

      npm install laravel-mix-clean --save-dev
      

      在混音文件中

      require('laravel-mix-clean');
      // [...]
      .clean({
        cleanOnceBeforeBuildPatterns: ['./js/*'],
      });
      

      2。删除清单

      让文件同步是不够的,所以我必须在每次新构建时删除清单文件。在我的设置中,我有三个并发构建(每个都有自己的 webpack.mix 文件),所以我不知道哪个会先完成。

      解决方案是安装del-cli 包(由clean-webpack-plugin 内部使用,而laravel-mix-clean 又使用它)并在每次构建之前删除清单文件。

      npm install del-cli --save-dev
      

      package.json

      "scripts": {
        "clear-manifest": "del-cli public/mix-manifest.json",
        // [...]
        "development": "npm run clear-manifest && concurrently \"npm run css-dev\" \"npm run js-dev\" \"npm run js-dev-modern\"",
      }
      

      我希望这可以帮助其他有类似问题的人。

      【讨论】:

        猜你喜欢
        • 2017-09-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-15
        • 2020-02-21
        • 2020-11-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多