Vue2 项目小技巧

生产环境去除 console.log

1. 安装webpack插件 uglifyjs-webpack-plugin (https://www.npmjs.com/package/uglifyjs-webpack-plugin)
2. 项目build 下面webpack.prod.config.js 文件中:
plugins: [
    new webpack.DefinePlugin({
      'process.env': env
    }),
    new UglifyJsPlugin({
      uglifyOptions: {
        compress: {
          warnings: false,
          dead_code: true, // 去除不可达代码
          drop_console: true, //drop_console  传递true以放弃对控制台的调用。*功能
          pure_funcs: ['console.log'] // pure_funces 禁用console.log函数
        }
      },
      sourceMap: config.build.productionSourceMap,
      parallel: true
]

条件编译修改Favicon图标

1.项目build 下面webpack.prod.config.js 文件中
// 添加如下代码
function getFavicon(){
  // favicon 自定义配置
  if(baseWebpackConfig.BRANCH_ENV === "XXX"){
    return 'src/assets/images/XXX.ico'
  }else if (baseWebpackConfig.BRANCH_ENV === "XX"){
    return 'src/assets/images/XX.ico'
  }else if(baseWebpackConfig.BRANCH_ENV === "X"){
    return 'src/assets/images/X.ico'
  }
}
const webpackConfig = merge(baseWebpackConfig, {
  module: {
    /*
      在utils.js已经配置好相关对extractTextPlugin的css抽取配置.通过extract: true即可触发

      如果要触发这个 extract 需要在plugins里面注册一下
    */
    ....
   },
   plugins: [
    ...
    new HtmlWebpackPlugin({
      // 生成html的名称
      filename: config.build.index,
      template: 'index.html',

      favicon:getFavicon(),

      // 这个配置项指js文件插入的位置
      // inject: true,
      // 额外的精简配置项
      // minify: {
      // 删去html中的注释项
      //   removeComments: true,
      // 折叠html中的空白字符
      //   collapseWhitespace: true,
      // 删去不必要的属性
      //   removeAttributeQuotes: true
      //   // more options:
      //   // https://github.com/kangax/html-minifier#options-quick-reference
      // },
      // necessary to consistently work with multiple chunks via CommonsChunkPlugin
      // 控制生成的js插入位置的顺序(可以结合chunks进行选择)
      chunksSortMode: 'dependency',
      //修改:这里的common.js 是在 webpack.base.conf.js中做了代码切分所使用的名称
      // chunks:['manifest','vendor','common.js','app']
    }),
    ...
   ]
    

VUE项目条件编译

1.安装条件编译模块
npm i -D js-conditional-compile-loader
2.配置webpack
// webpack.base.conf.js文件中在rules配置编译条件如下
...
module: {
    rules: [
        {
	        test: /\.vue$/,
	        use:[
	          {
	            loader: 'vue-loader',
	            options: vueLoaderConfig
	          },
	          {
	            loader: 'js-conditional-compile-loader',
	            options: {
	                // isDebug: process.env.NODE_ENV === 'development',
	                isDebug : true,
	                isTEST: process.env.npm_config_test,
	            }
	          },
	        ]
        },
        {
            test: /\.(css|js)(\?.*)?$/,
            loader: 'js-conditional-compile-loader',
            options: {
            	// isDebug: process.env.NODE_ENV === 'development',
	            isDebug: true,
	            isTEST: process.env.npm_config_test,
	        }
        },
        //other rules
		...
    ]

}
3.项目中使用
//插件支持IFDEBUG和IFTRUE两个条件编译指令
//在js代码的任意地方以/*IFDEBUG或/*IFTRUE_xxx开头
//以FIDEBUG*/或FITRUE_xxx*/结尾
//中间是被包裹的js代码。xxx是在webpack中指定的条件属性名,如上面的isTEST。

{ name: '用户部门', value: 'usrDepartId' },
/* IFTRUE_isTEST */
{ name: '用户管理', value: 'id' },
/* FITRUE_isTEST */
{ name: '手机号', value: 'telphone' },

4.编译执行
## 可以看到用户管理
在终端输入 npm run dev –test

## 隐藏用户管理
在终端输入 npm run dev
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值