如何在 Laravel 7 中使用 Webpack.mix.js 使用多个 js?

Posted

技术标签:

【中文标题】如何在 Laravel 7 中使用 Webpack.mix.js 使用多个 js?【英文标题】:How to use multiple js using Webpack.mix.js in Laravel 7? 【发布时间】:2020-09-02 22:43:27 【问题描述】:

我的项目我正在使用 Bootstrap.jsJquery.jsJquery_validation.js 和一个 custom.js(针对项目特定规则)。

我只想在所有页面上使用一个 app.js。使用 webpack.mix 的最佳方式是什么?

我已经安装了 jquery 和 jquery-validation ,请给我建议。

package.json

"devDependencies": 
    "axios": "^0.19",
    "bootstrap": "^4.0.0",
    "cross-env": "^7.0",
    "jquery": "^3.2",
    "laravel-mix": "^5.0.1",
    "lodash": "^4.17.13",
    "popper.js": "^1.12",
    "resolve-url-loader": "^2.3.1",
    "sass": "^1.20.1",
    "sass-loader": "^8.0.0",
    "vue": "^2.5.17",
    "vue-template-compiler": "^2.6.10"
,
"dependencies": 
    "jquery-validation": "^1.19.1",
    "savvy-js": "^1.0.7"

在资源/js/app.js中

require('jquery-validation');

require('./bootstrap');

window.Vue = require('vue');

webpack.mix

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

.sass('resources/sass/app.scss', 'public/css') 。选项( processCssUrls:假 );

那么请告诉我如何以最佳方式使用 bootstrap.js、jquery.js、jquery-validation.js 和 custom.js(resource/js/custom.js)?

【问题讨论】:

这是一个非常标准的 laravel 设置。在您的app.blade.php 中,您应该有<script src=" asset('js/app.js') "></script>,其中包含您创建的脚本。 是的,我正在使用它,但我有多个 js(bootstrap、jquery、jquery_validation 和一个自定义 js),所以需要将它们组合起来。 你运行“npm run production”了吗? 【参考方案1】:

webpack.mix.js 需要文件扩展名;文件夹不够。我通常将 .sass 链接到我的视图。类似的东西


//does not work
mix.js(['resources/js/app.js','resources/js/snavvy.js'], 'public/js');


//sucessful
mix.js('resources/js/app.js','public/js');

//or if you want a custom name
mix.js('resources/js/snavvy.js', 'public/js/custom_snavvy.js');
npm run dev

//or

npm run watch

祝你好运。

【讨论】:

我添加了带扩展名的文件名。 mix.js(['resources/js/app.js','resources/js/snavvy.js'], 'public/js/app.js'),但仍然无法正常工作。 尝试去掉 '[' 和 ']' 并将 .js 视图放在单独的 mix.js 类中。 这完全是“//成功”它 新编辑的答案在 public/js 文件夹中创建两个 js 文件,那么 webpack.mix 的优势是什么。 用相应的库将文件编译到某个目录。这只是一个语法问题【参考方案2】:

这个解决方案对我有用:

mix.js([
    'resources/js/app.js',
    'resources/js/jquery-2.2.4.min.js',
    'resources/plugins/bootstrap-3.3.6/js/bootstrap.min.js',
     ...
], 'public/js/app.js').version();

Further Details

【讨论】:

以上是关于如何在 Laravel 7 中使用 Webpack.mix.js 使用多个 js?的主要内容,如果未能解决你的问题,请参考以下文章

通过webpack为Laravel添加时刻

Laravel 5 & Webpack SASS - 如何添加另一个 CSS 文件

使用 webpack 在 Laravel 5 中将插件安装到 CKEditor 5

在 laravel elixir 上使用多个 webpack 方法

Laravel-mix Webpack 公共路径

如何重写 webpack.config.js 并为 LARAVEL 8 添加 SASS