这些是在package.json 上定义的别名,用于执行脚本
这里是别名和带有参数的相应命令。
scripts": {
"dev": "npm run development",
"development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
"watch": "npm run development -- --watch",
"watch-poll": "npm run watch -- --watch-poll",
"hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --disable-host-check --config=node_modules/laravel-mix/setup/webpack.config.js",
"prod": "npm run production",
"production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
},
我们在这里看到两个命令之间的两个参数差异
对于开发/开发来说是
NODE_ENV=development --progress
对于生产来说是
NODE_ENV=production --no-progress
这意味着当 dev 命令运行时,节点环境设置为开发,而当 prod 运行时,节点环境设置为生产。此外,在开发命令中显示时,生产中不会显示进度。
默认任务会因环境而异。您也可以使用它在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');
//run this task if the environment is not in production
if(!mix.inProduction()) {
mix.sourceMaps();
mix.webpackConfig({ devtool: 'inline-source-map'})
}
Webpack
开发和生产之间的实际区别在于优化。对于生产而言,与开发相比,构建时间会更多,因为一些优化任务只会在生产中完成,这也会缩小代码。在 Laravel 中,默认使用 Laravel mix 来轻松配置它。底层由 webpack 处理。从此处的 webpack 文档中,您可以实际检查两个环境和特定环境任务之间的区别。
构建性能 develpment 与 production