vue-cli3推崇零配置,其图形化项目管理也很高大上。

但是vue-cli3推崇零配置的话,导致了跟之前vue-cli2的配置方式都不一样了。

别名设置,sourcemap控制,输入文件位置和输出文件位置和输出的方式,压缩js控制,打包webapck日志分析,externals忽略配置(外部引入),调试的端口配置,proxy接口配置等等的。

有时候还需要我们配置的,因为官方推荐的,并不适用于我们平时的开发所用的。

所以,我的vue.config.js配置是下面这样的。还有一个改hash的配置,暂时还不知道如何配置,以后会解决的,解决的时候顺便更新这里。

资料查询借鉴地址:

https://github.com/staven630/vue-cli3-config(介绍vue.config.js配置方法)

https://github.com/loveRandy/vue-cli3.0-vueadmin(借鉴前辈vue-cli3项目里的vue.config.js配置)也查询了不少github上的相关项目。

下面这个vue.config.js需要先安装依赖

yarn add compression-webpack-plugin

yarn add uglifyjs-webpack-plugin

const IS_PROD = ['production', 'prod'].includes(process.env.NODE_ENV);console.log("process.env.NODE_ENV:" + process.env.NODE_ENV);
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
const path = require('path')
const CompressionWebpackPlugin = require('compression-webpack-plugin');
const productionGzipExtensions = ['js', 'css']
const resolve = dir => path.resolve(__dirname, dir)module.exports = {publicPath: './', // 默认'/',部署应用包时的基本 URLoutputDir: 'dist', // 'dist', 生产环境构建文件的目录assetsDir: '',  // 相对于outputDir的静态资源(js、css、img、fonts)目录lintOnSave: false,runtimeCompiler: true, // 是否使用包含运行时编译器的 Vue 构建版本productionSourceMap: false,  // 生产环境的 source map// CSS 相关选项
    css: {// 将组件内的 CSS 提取到一个单独的 CSS 文件 (只用在生产环境中)// 也可以是一个传递给 `extract-text-webpack-plugin` 的选项对象extract: true,// 是否开启 CSS source map?sourceMap: false,// 为预处理器的 loader 传递自定义选项。比如传递给// sass-loader 时,使用 `{ sass: { ... } }`。
        loaderOptions: {},// 为所有的 CSS 及其预处理文件开启 CSS Modules。// 这个选项不会影响 `*.vue` 文件。modules: false},// 在生产环境下为 Babel 和 TypeScript 使用 `thread-loader`// 在多核机器下会默认开启。parallel: require('os').cpus().length > 1,pwa: {},chainWebpack: config => {// 修复HMRconfig.resolve.symlinks(true);//修复 Lazy loading routes Errorconfig.plugin('html').tap(args => {args[0].chunksSortMode = 'none';return args;});// 添加别名
        config.resolve.alias.set('@', resolve('src')).set('assets', resolve('src/assets')).set('components', resolve('src/components')).set('layout', resolve('src/layout')).set('base', resolve('src/base')).set('static', resolve('src/static'));//压缩图片// config.module//     .rule("images")//     .use("image-webpack-loader")//     .loader("image-webpack-loader")//     .options({//         mozjpeg: {progressive: true, quality: 65},//         optipng: {enabled: false},//         pngquant: {quality: "65-90", speed: 4},//         gifsicle: {interlaced: false},//         webp: {quality: 75}//     });
    },configureWebpack: config => {if (IS_PROD) {const plugins = []plugins.push(new UglifyJsPlugin({uglifyOptions: {compress: {warnings: true,drop_console: true,drop_debugger: true,pure_funcs: ['console.log'] //移除console
                        },mangle: false,output: {beautify: true,//压缩注释
                        }},sourceMap: false,parallel: true,}))plugins.push(new CompressionWebpackPlugin({filename: '[path].gz[query]',algorithm: 'gzip',test: productionGzipExtensions,threshold: 10240,minRatio: 0.8}))//去掉 console.log
            plugins.push(new UglifyJsPlugin({uglifyOptions: {compress: {warnings: true,drop_console: true,drop_debugger: true,pure_funcs: ['console.log']//移除console
                        }},sourceMap: false,parallel: true}));config.plugins = [...config.plugins, ...plugins]}// 打包分析if (process.env.IS_ANALYZ) {config.plugin('webpack-report').use(BundleAnalyzerPlugin, [{analyzerMode: 'static',}]);}// //配置 externals// //防止将某些 import 的包(package)打包到 bundle 中,而是在运行时(runtime)再去从外部获取这些扩展依赖// config.externals = {//     'vue': 'Vue',//     'element-ui': 'ELEMENT',//     'vue-router': 'VueRouter',//     'vuex': 'Vuex',//     'axios': 'axios'// }
    },devServer: {// overlay: {//   warnings: true,//   errors: true// },
        open: IS_PROD,host: '0.0.0.0',port: 8080,https: false,hotOnly: false,proxy: {'/api': {target: process.env.VUE_APP_BASE_API || 'http://127.0.0.1:8080',changeOrigin: true}}}
};

注意事项:执行yarn build或npm run build 的之前,请先设置下环境,就是输入下面这个命令行。

set NODE_ENV=production

转载于:https://www.cnblogs.com/huoan/p/10354341.html

vue-cli3 vue.config.js配置相关推荐

  1. Vue Cli3 项目 vue.config.js 配置

    Vue Cli3 项目 vue.config.js 配置 配置优化 一.js文件最小化处理 二.分割代码 三.图片资源压缩 四.开启gzip压缩 先看一下优化配置之前的文件大小 通过vue-cli3脚 ...

  2. vue-cli3中的vue.config.js配置

    vue-cli3中的vue.config.js配置 我的跨域是配置通过chrome浏览器的跨域设置,前端修改跨域问题,以此解决跨域的,故没有配置代理: const path = require('pa ...

  3. 【vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud】

    vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud问答

  4. 【Cli下在vue.config.js配置configureWebpack/resolve/alias之无效 - 】

    cli下在vue.config.js配置configureWebpack/resolve/alias无效 - DCloud问答

  5. vue.config.js配置configureWebpack的optimization splitChunks页面空白

    确实通过这种方式解决: vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud问答 原因可能是这个: Taro项目 ...

  6. vue-cli3.x( bate版 ) 中 vue.config.js 配置含义

    vue-cli3.0 中 vue.config.js 配置含义 在vue-cli3.x( bate版 ) 中有些配置需要自己去配置 需要在最外层同级目录下建立 vue.config.js 文件 下面就 ...

  7. vue.config.js配置proxy代理解决跨越;proxy代理报404;

    像我们本地的vue项目运行起来,访问的地址一般是localhost,这个时候请求后台的接口,端口号也不一致,肯定就会存在跨域问题,所以我们要是想正常访问接口的话,就需要解决掉跨域问题. 本文我们是在v ...

  8. vue 和 ssr+nuxt.js 配置环境变量以及pm2进行服务部署

    前言 vue-ssr+nuxt.js开发的跨境电商的配置的项目环境变量. nuxt.js配置环境变量 第一步:安装cross-env插件 npm install cross-env --save 第二 ...

  9. vite.config.js配置入门与小记

    1 如何创建vite项目? step 1 :npm init vite@latestyarn create vite step2 : npm init vite@latest my-vue-app - ...

  10. webpack之webpack.config.js配置

    webpack之webpack.config.js配置 wbepack.config.js webpack的配置文件详解: ​ 作用: 指示 webpack 干那些活(当你运行 webpack 指令时 ...

最新文章

  1. WaveNet原理简单理解
  2. hideprocess in bcb
  3. IBM软件服务创新运用 提升市民生活质量
  4. docker+kafka+zookeeper+zipkin的安装
  5. GC:垃圾回收机制及算法
  6. Oracle 甩手 Java EE,Eclipse 基金会成新东家
  7. 基于深度学习算法的NLP集成工具
  8. Android lsof查看已打开文件
  9. deepstream-app源码没有公开,预计3.0可能公开
  10. win8修复计算机u盘,Win8系统U盘里的文件不见了怎么办?
  11. C++ Primer 5th 源代码使用说明
  12. 常用的三种非对称加密算法
  13. 牛顿与莱布尔茨的微积分战争
  14. 最大质因子递归解法python
  15. 小李飞刀:Python我又来啦,例无虚发~
  16. 我们说运营,到底是在说运营什么?
  17. 电子招标采购系统源码之什么是电子招投标系统?
  18. 赛事解读|中国工程机器人大赛暨国际公开赛——飞思实验室空中机器人项目-仿真与自主任务赛项
  19. 1秒生成证件照——小米云证件照微信小程序
  20. erp开发 php,php适合做erp吗?

热门文章

  1. BZOJ 2432 兔农
  2. MEF: MSDN 杂志上的文章(6) 一个部件可以有多个导出 !!!
  3. javascript getComputedStyle,getPropertyValue,CurrentStyle说明
  4. 很好听,可没机会跟你分享
  5. C# CRC16 modbus
  6. Linux下启动/关闭Oracle
  7. 为什么设置 height 100% 不起作用
  8. Windows中ElasticSearch的备份和还原
  9. 解决LINQ to Entities does not recognize the method 'System.String Encrypt(System.String)' method, and
  10. cloudflare 关于tls 检测,发送未知message type字节