[英]How to migrate from laravel mix to pure Webpack?
鉴于新webpack.mix.js
项目的 webpack.mix.js :
const mix = require('laravel-mix');
/*
|--------------------------------------------------------------------------
| Mix Asset Management
|--------------------------------------------------------------------------
|
| Mix provides a clean, fluent API for defining some Webpack build steps
| for your Laravel application. By default, we are compiling the Sass
| file for the application as well as bundling up all the JS files.
|
*/
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css');
仅使用 webpack 和webpack.config.js
的等价物是什么? (我希望删除 laravel mix 作为对现有项目的依赖。)
我确实在源代码中找到了这个默认文件,但它对我没有帮助。 有没有办法可以看到“编译/生成”webpack 配置或对应于 laravel 混合默认设置的模板/起点?
可以,但结果不是很满意。
用这个创建一个 JS 脚本:
console.log (JSON.stringify(
require('./node_modules/laravel-mix/setup/webpack.config.js'), null, 4)
);
并将其保存在 laravel 项目的根文件夹中。 使用 Node 运行它,output 将是配置 object Laravel 混合接收和输入到 Z424516CA53B4AD4BEF837ED04
但是,此文件非常长,并且包含大量设置,如果您从头开始制作文件,则不需要这些设置。 是的,您可以尝试删除您认为可以在不破坏 output 的情况下删除的所有额外设置,但最后最好了解 Webpack 的工作原理,这样您就可以编写更好的模式调整配置。 至少你可以用它来理解它是如何做某些事情的。
只需放入 webpack.mix.js
Mix.listen('configReady', function (config) {
RegExp.prototype.toJSON = RegExp.prototype.toString;
console.log(JSON.stringify(config));
});
因此,您将从 laravel.mix 中获得 webpack 配置。
您引用的文件似乎完全指向默认配置。 为什么这没有帮助?
为了迁移你可以
从 Laravel 中提取依赖项并将它们混合并添加到您的 package.json
dependencies
项是你的devDependencies
npm install --save-dev
一切“webpack”,“babel”并以“-loader”为前缀。npm install --save-dev node-sass sass-loader mini-css-extract-plugin
。const path = require('path');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
module.exports = {
entry: './resources/js/app.js',
output: {
filename: 'js/[name].js',
path: path.join(__dirname, 'public')
},
plugins: [
new MiniCssExtractPlugin({
filename: 'css/[name].css'
})
],
module: {
rules: [
{
test: /\.(sa|sc|c)ss$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
},
'css-loader',
'sass-loader'
]
}
]
}
};
使用最近的 laravel-mix,您只需要调用mix.dump()
(在webpack.mix.js
脚本中)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.