由于不同的laravel版本或者安装的webpack依赖的版本不同可能会有不同的配置,
因此最好是在gulpfile.js或webpack.mix.js 先打印输出引入的{mix}
如下是laravel5.5的操作
const
{ mix } = require
(
'laravel-mix'
)
;
console.log
(
'mix:'
,mix.config
)
//输出如下
{
production: true,//是否处于生产环境 npm run production
js: [],
customAssets: [],
extractions: [],
preprocessors: {},
react: false,
preact: false,
typeScript: false,
autoload: {},
browserSync: false,
hmr: false,
postCss: [],
autoprefixer: true,
purifyCss: false,
publicPath: 'public',
versioning: false,
notifications: { onSuccess: true, onFailure: true },
sourcemaps: false,
resourceRoot: '/',
vue: { preLoaders: {}, postLoaders: {}, esModule: false },
imgLoaderOptions: { enabled: true, gifsicle: {}, mozjpeg: {}, optipng: {}, svgo: {} },
fileLoaderDirs: { images: 'images', fonts: 'fonts' },
babel: [Function: babel],
processCssUrls: true,
extractVueStyles: false,
globalVueStyles: '',
uglify:
{
sourceMap: true,
uglifyOptions: { compress: [Object], output: [Object] },//压缩混淆js的配置项
},
cleanCss: {},
webpackConfig: {},
clearConsole: true,
merge: [Function: merge]
}
在输出的配置项中看到“标红”的第一部分,
production: true 代表是否处于生产环境 npm run production;
一、如果想增加版本号,只要在最后判断
mix
.
config
.production
if(mix.config.production){
console.log('InProd')
mix.version();
}
第二部分
代表压缩混淆js的配置项
uglify:
{
sourceMap: true,
uglifyOptions: { compress: [Object], output: [Object] },
},
二、这里如果想屏蔽console,需要更改第二部分的uglify配置项
// remove js console.log
mix.config.uglify.uglifyOptions = {
compress: {
warnings: false,
drop_console: true,//console
pure_funcs: ['console.log']//移除console
}
}