如何使用 Laravel Mix 将 Vue 块文件放在 public/js 中?

Posted

技术标签:

【中文标题】如何使用 Laravel Mix 将 Vue 块文件放在 public/js 中?【英文标题】:How do I put Vue chunk files in public/js with Laravel Mix? 【发布时间】:2020-05-14 10:15:35 【问题描述】:

我有一个 Laravel 和 Vue 项目,我在其中使用 Vue 中的动态 import 函数调用将我的组件分块到单独的文件中。

一切正常,但是 Vue 块文件(例如,0.js1.js 等)被直接放在 public 目录下,而不是在 public/js 下,app.js 所在的位置是。

这是我的 Laravel Mix 文件:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js/')
   .sass('resources/sass/vendor.scss', 'public/css/')
   .sass('resources/sass/app.scss', 'public/css/')
   .version();

每次构建时,我需要更改/添加什么以使 Vue 块文件自动放置在 public/js 中,而不是直接放在 public 目录下?谢谢。

【问题讨论】:

我添加了完全相同的东西,我是 vue 和 laravel-mix 概念的新手。如果我需要在生产中部署应用程序,我是否需要进行 npm install 和 npm run prod ?我在想 app.js 包含块文件 【参考方案1】:

你可以像下面这样在 webpack 中添加路径

mix.webpackConfig(
    output: 
        chunkFilename: 'js/chunks/[name].js',//replace with your path
    ,
);

查看GitHub issue了解更多信息

【讨论】:

工作就像一个魅力!谢谢。

以上是关于如何使用 Laravel Mix 将 Vue 块文件放在 public/js 中?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Laravel Mix 中修改 Vue Loader 设置?

带有 laravel-mix 的 vue-loader 15

Laravel mix 在 vue 组件中看不到 img 元素

在 Laravel Mix 中使用 extract() 时 Vue 未加载

Laravel Mix 中的 Bootstrap-Vue CSS 编译

Vue - 由于 webpack 版本(vue-cli-service、laravel-mix、webpack)导致 npm run serve 命令崩溃