laravel生产环境编译屏蔽console、加版本号

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Loving_M/article/details/79971473
由于不同的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
    }
}


阅读更多

没有更多推荐了,返回首页