阅读(1769) (9)

Laravel 8 Vendor 提取

2021-06-29 14:50:03 更新

将应用自身的 JavaScript 和第三方库绑定在一起有个潜在的缺点:会使长期缓存变得困难。例如,应用代码的单独更新将强制浏览器重新下载全部第三方库,即使第三方库没有发生变化。

如果你打算频繁地更新应用中的 JavaScript,应该考虑将第三方库提取到它自己的文件中。这样一来,应用代码的改变将不影响 vendor.js 文件缓存。Mix 的 extract 方法为之提供了便利:

mix.js('resources/js/app.js', 'public/js')
    .extract(['vue'])

extract 方法接受你想要提取到 vendor.js 的全部库或模块的数组作为参数。使用上面例子中的代码片段,Mix 将生成如下文件:

  • public/js/manifest.js: Webpack 运行时清单
  • public/js/vendor.js: 第三方库代码
  • public/js/app.js: 应用代码

为避免 JavaScript 错误,应确保按适应顺序加载这些文件:

<script src="/js/manifest.js"></script>
<script src="/js/vendor.js"></script>
<script src="/js/app.js"></script>