• vue-cli3 vue-config.js配置


      两个月前,由于个人之前用的不是图形化界面的,所以对于许多的配置,变成了,额,怎么这个不能配了,我想要之前webpack可配置的一些插件,于是百度了一番,综合项目使用了,如下配置,算是对这些东西的一个记录

      1 const path = require('path')
      2 const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV);
      3 const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
      4 const CompressionWebpackPlugin = require('compression-webpack-plugin');
      5 const productionGzipExtensions = ['js', 'css']
      6 const BrotliPlugin = require("brotli-webpack-plugin");
      7 const apibaseUrl ="http://a.ab.cn:83/aaaa"
      8  
      9 function resolve(dir) {
     10     return path.join(__dirname, dir)
     11 }
     12 module.exports = {
     13     baseUrl: '/vue_dist/app/',
     14     devServer: {
     15         proxy: {
     16             '/vue_dist/api': {
     17                 target: `${apibaseUrl}/api`,
     18                 pathRewrite: { '^/vue_dist/api': '' },
     19             },
     20            
     21         }
     22     },
     23     //生产环境构建文件的目录
     24     outputDir:"dist",
     25     assetsDir:'assets',
     26     //生产环境是否生成SourceMap
     27     productionSourceMap: true,
     28     // 是否使用包含运行时编译器的 Vue 构建版本
     29     runtimeCompiler: true,
     30     parallel: require('os').cpus().length > 1,
     31     // css相关配置
     32     css: {
     33     // 是否使用css分离插件 ExtractTextPlugin
     34     extract: IS_PROD?true:false,
     35     // 开启 CSS source maps?
     36     sourceMap:IS_PROD?false:true,
     37     // css预设器配置项
     38     loaderOptions: {},
     39     // 启用 CSS modules for all css / pre-processor files.
     40     modules: false
     41     },
     42 
     43     configureWebpack: config => {
     44         //生产环境去掉console 和 debugger
     45         //压缩代码减少文件体积    
     46         if (IS_PROD) {  
     47             const plugins = [];
     48             plugins.push(
     49                 new UglifyJsPlugin({
     50                 uglifyOptions: {
     51                     compress: {
     52                     warnings: false,
     53                     drop_console: true,
     54                     drop_debugger: true,//移除debugger
     55                     pure_funcs: ['console.log']//移除console
     56                     }
     57                 },
     58                 sourceMap: false,
     59                 parallel: true
     60                 })
     61             );
     62             plugins.push(
     63                 new CompressionWebpackPlugin({
     64                 filename: '[path].gz[query]',
     65                 algorithm: 'gzip',
     66                 test: productionGzipExtensions,
     67                 threshold: 10240,
     68                 minRatio: 0.8
     69                 })
     70             );
     71             // Zopfli压缩 https://webpack.js.org/plugins/compression-webpack-plugin/
     72             /* plugins.push(
     73             new CompressionWebpackPlugin({
     74                 algorithm(input, compressionOptions, callback) {
     75                 return zopfli.gzip(input, compressionOptions, callback);
     76                 },
     77                 compressionOptions: {
     78                 numiterations: 15
     79                 },
     80                 minRatio: 0.99,
     81                 test: productionGzipExtensions
     82             })
     83             );
     84             plugins.push(
     85             new BrotliPlugin({
     86                 test: productionGzipExtensions,
     87                 minRatio: 0.99
     88             })
     89             );
     90             config.plugins = [
     91                 ...config.plugins,
     92                 ...plugins
     93             ]; */
     94         }
     95     },
     96     chainWebpack: config => {
     97         // 修复HMR
     98         config.resolve.symlinks(true)
     99         //配置别名
    100         config.resolve.alias
    101             .set("@", resolve('src')) // key,value自行定义,比如.set('@@', resolve('src/components'))
    102         if (IS_PROD) {
    103             // 生产环境配置
    104             
    105         } else {
    106             //开发环境配置
    107         
    108         }
    109     }
    110     
    111 }
  • 相关阅读:
    ubuntu下使用ppa安装codeblocks集成开发环境
    CentOS g++ 安装
    CentOS 7.1云服务器 配置FTP服务器vsftpd
    div高度自适应浏览器高度
    HTML中的head结构
    javascript高级进阶系列
    javascript集中跨域方法
    canvas标签的width和height以及style.width和style.height的区别
    html5学习笔记之入新特性
    ie下a标签里的图片会有边框
  • 原文地址:https://www.cnblogs.com/Ewarm/p/11095169.html
Copyright © 2020-2023  润新知