vue-cli3 vue.config.js配置
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配置相关推荐
- Vue Cli3 项目 vue.config.js 配置
Vue Cli3 项目 vue.config.js 配置 配置优化 一.js文件最小化处理 二.分割代码 三.图片资源压缩 四.开启gzip压缩 先看一下优化配置之前的文件大小 通过vue-cli3脚 ...
- vue-cli3中的vue.config.js配置
vue-cli3中的vue.config.js配置 我的跨域是配置通过chrome浏览器的跨域设置,前端修改跨域问题,以此解决跨域的,故没有配置代理: const path = require('pa ...
- 【vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud】
vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud问答
- 【Cli下在vue.config.js配置configureWebpack/resolve/alias之无效 - 】
cli下在vue.config.js配置configureWebpack/resolve/alias无效 - DCloud问答
- vue.config.js配置configureWebpack的optimization splitChunks页面空白
确实通过这种方式解决: vue.config.js配置configureWebpack的optimization splitChunks页面空白 - DCloud问答 原因可能是这个: Taro项目 ...
- vue-cli3.x( bate版 ) 中 vue.config.js 配置含义
vue-cli3.0 中 vue.config.js 配置含义 在vue-cli3.x( bate版 ) 中有些配置需要自己去配置 需要在最外层同级目录下建立 vue.config.js 文件 下面就 ...
- vue.config.js配置proxy代理解决跨越;proxy代理报404;
像我们本地的vue项目运行起来,访问的地址一般是localhost,这个时候请求后台的接口,端口号也不一致,肯定就会存在跨域问题,所以我们要是想正常访问接口的话,就需要解决掉跨域问题. 本文我们是在v ...
- vue 和 ssr+nuxt.js 配置环境变量以及pm2进行服务部署
前言 vue-ssr+nuxt.js开发的跨境电商的配置的项目环境变量. nuxt.js配置环境变量 第一步:安装cross-env插件 npm install cross-env --save 第二 ...
- vite.config.js配置入门与小记
1 如何创建vite项目? step 1 :npm init vite@latestyarn create vite step2 : npm init vite@latest my-vue-app - ...
- webpack之webpack.config.js配置
webpack之webpack.config.js配置 wbepack.config.js webpack的配置文件详解: 作用: 指示 webpack 干那些活(当你运行 webpack 指令时 ...
最新文章
- WaveNet原理简单理解
- hideprocess in bcb
- IBM软件服务创新运用 提升市民生活质量
- docker+kafka+zookeeper+zipkin的安装
- GC:垃圾回收机制及算法
- Oracle 甩手 Java EE,Eclipse 基金会成新东家
- 基于深度学习算法的NLP集成工具
- Android lsof查看已打开文件
- deepstream-app源码没有公开,预计3.0可能公开
- win8修复计算机u盘,Win8系统U盘里的文件不见了怎么办?
- C++ Primer 5th 源代码使用说明
- 常用的三种非对称加密算法
- 牛顿与莱布尔茨的微积分战争
- 最大质因子递归解法python
- 小李飞刀:Python我又来啦,例无虚发~
- 我们说运营,到底是在说运营什么?
- 电子招标采购系统源码之什么是电子招投标系统?
- 赛事解读|中国工程机器人大赛暨国际公开赛——飞思实验室空中机器人项目-仿真与自主任务赛项
- 1秒生成证件照——小米云证件照微信小程序
- erp开发 php,php适合做erp吗?
热门文章
- BZOJ 2432 兔农
- MEF: MSDN 杂志上的文章(6) 一个部件可以有多个导出 !!!
- javascript getComputedStyle,getPropertyValue,CurrentStyle说明
- 很好听,可没机会跟你分享
- C# CRC16 modbus
- Linux下启动/关闭Oracle
- 为什么设置 height 100% 不起作用
- Windows中ElasticSearch的备份和还原
- 解决LINQ to Entities does not recognize the method 'System.String Encrypt(System.String)' method, and
- cloudflare 关于tls 检测,发送未知message type字节