vuecli4升级到vuecli5踩坑记录
项目依赖的module版本很新,用到了es2020的语法,在vuecli4版本上死活编译不成功,升级5后解决,这个过程中在配置vue.config.js中遇到了很多问题,记录下给大家一个参考~
vuecli官网英文已经更新为最新的cli5但中文还停留在cli4,导致我最开始在查资料时一直没有查到官方资料,后来偶然间切换英文才发现。
1.配置scss,pretendData变为additionalData
2.启用css moudles
这个vuecli官网也有记录Working with CSS | Vue CLI
值得注意的是,在vuecli4中使用requireModuleExtension,默认为true,默认情况下,只有 *.module.[ext]
结尾的文件才会被视作 CSS Modules 模块。详见配置参考 | Vue CLI
而在vuecli5中,如果将所有样式文件视为 CSS 模块,才需要设置
这里其实跟cli4中赋值是相反的,在cli4版本中requireModuleRxtension为true表示只有以.module结尾的才被当做css Modules模块,而在cli5版本中,为true时是将所有样式文件都当做了css Moudles模块。
就是在这里开始我配置错了,导致项目样式加载不出来,找了很久的原因。后来发现在页面上样式id并不是我文件中写的id才发现这个问题。
3.hotOnly
devServer配置中的hotOnly为true改为hot:'only',若为false可以省略该属性
4.configureWebpack中的fileName
使用compression-webpack-plugin9版本,在配置plugin的fileName时,在compression-webpack-plugin5版本中,配置fileName为"[path].gzip[query]",升级到9.0+版本后,改为"[path][base].gzip"
5.完整的vue.config.js
最后,贴出完整的vue.config.js供大家参考
const { defineConfig } = require("@vue/cli-service")
const path = require("path")
const CompressionWebpackPlugin = require("compression-webpack-plugin")
const productionGzipExtensions = ["js", "css"]const resolve = (dir) => path.join(__dirname, dir)module.exports = defineConfig({// 基本路径publicPath: "/",// 输出文件目录outputDir: "",assetsDir: "static",// eslint-loader 是否在保存的时候检查lintOnSave: false,runtimeCompiler: true, // 关键点在这filenameHashing: true,// 调整内部的 webpack 配置。chainWebpack: (config) => {config.resolve.alias.set("@", resolve("src")).set("assets", resolve("src/assets")).set("components", resolve("src/components")).set("types", resolve("src/types")).set("public", resolve("public"))config.module.rule("vue").use("vue-loader").tap((options) => ({...options,compilerOptions: {// 忽略自定义标签警告 vue3 app.config.compilerOptions.isCustomElement 配置有问题isCustomElement: (tag) => {return ["xml", "block", "mutation", "category"].includes(tag)},},}))},// 生产环境是否生成 sourceMap 文件productionSourceMap: false,// css相关配置css: {// 开启 CSS source maps?sourceMap: false,// css预设器配置项loaderOptions: {scss: {additionalData: `@import './src/assets/styles/variables.scss';`,},sass: {implementation: require("sass"), // This line must in sass option},css: {modules: {auto: () => false,},},},},// webpack-dev-server 相关配置devServer: {/* 自动打开浏览器 */open: process.platform === "darwin",port: 8080,https: false,// hot: 'only',/* 使用代理 */proxy: {"/robogo": {/* 目标代理服务器地址 */target: process.env.VUE_APP_BASE_API,/* 允许跨域 */changeOrigin: true,ws: true,},"/loki": {/* 目标代理服务器地址 */target: process.env.VUE_APP_BASE_API,/* 允许跨域 */changeOrigin: true,ws: true,},},},configureWebpack: {resolve: {fallback: {path: require.resolve("path-browserify"),stream: require.resolve("readable-stream"),crypto: require.resolve("crypto-browserify"),perf_hooks: false,module: false,"@blueprintjs/core": false,"@blueprintjs/icons": false,domain: false,fs: false,pnpapi: false,punycode: false,},},module: {rules: [{test: /\.mjs$/,include: /node_modules/,type: "javascript/auto",},],},plugins: [new CompressionWebpackPlugin({filename: "[path][base].gzip", algorithm: "gzip",test: new RegExp("\\.(" + productionGzipExtensions.join("|") + ")$"),threshold: 10240, //内容超过10KB进行压缩minRatio: 0.8,}),],externals: [{"./cptable": "var cptable",},],},// 第三方插件配置pluginOptions: {},
})
vuecli4升级到vuecli5踩坑记录相关推荐
- 转:android.support升级到androidx踩坑记录
原文链接:android.support升级到androidx踩坑记录 - 简书 年前想着Google老大之前提醒过将项目升级到androidx,所以年前一通操作猛如虎把Android Studio唰 ...
- 为Jupyter notebook配置R kernel过程及踩坑记录
为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...
- Dubbo3的Triple协议踩坑记录
Triple协议踩坑记录 Triple协议 Triple 协议是 Dubbo3 提出的基于 HTTP2 + gRPC 的开放协议,完整兼容 gRPC over HTTP/2,旨在解决 Dubbo2 私 ...
- 日常踩坑记录-汇总版
开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...
- AirSim学习和踩坑记录(不定时更新)
版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...
- STF环境搭建运行及踩坑记录
最初是在centos环境上搭建STF,由于种种依赖缺失.nodejs/npm版本不兼容.以及无解的"Segmentation fault (core dumped)"错误,最终还是 ...
- Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack3.3,python2.7,torch1.2,torchvision0.2.2)
本文总结了自带系统安装cuda等深度学习环境和使用jetpack3.3刷机的步骤,虽然自己的代码没用上,但有需要的人可以参考一下. PS:Jetpack4.5的刷机教程请移步另一篇文章: xyl-50 ...
- Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack4.5.1,python3.6,torch1.6,torchvision0.7)
最近接触到了Nvidia Jetson TX2这块开发板,想入手测试一下自己的深度学习模型,因此和TX2的故事开始了! 前言 本人刷机多次,尝试各种大小坑: 自带系统搭建环境:刚开始不想刷机,就自己手 ...
- 博途v17与winCC安装流程与踩坑记录
博途v17与winCC7.5安装教程与踩坑记录 安装教程 博途安装流程 第一步 注册表删除 第二步 启用.NET Framework服务 第三步 正式安装 winCC安装流程 博途v17与winCC安 ...
最新文章
- NLP汉语自然语言处理原理与实践
- linux刷新磁盘的命令,sync命令 – 刷新文件系统缓冲区
- 马斯克用实力赢得信任!SpaceX获NASA批准,可用“二手”火箭和飞船载人航天
- 云炬WEB开发笔记 2-3git详细安装教程及下载太慢的解决办法
- 关闭系统进程,以及如何调用cmd并执行命令
- 防御sql和xss的php代码,PHP防XSS 防SQL注入的代码
- SpringMVC自学日志03(SpringMVC注解)
- bmklocationmanager方法没有回调_关于node中的回调(必学)
- 数据库锁 与 事务隔离级别
- AI:AI与爱无处不在,大赛与奖金齐飞—【科大讯飞】AI开发者大赛—与你在AI盛会中遨游!
- S32K1xx系列MCU的EEE(Emulated EEPROM)使用详解
- 2020幻影围棋 围棋规则模块(二)
- 白鹤芋一帆风顺花怎么养 一帆风顺花养殖方法及注意事项
- chrome主页被篡改后缀为?tn=49055317_4_hao_pg
- Python量化教程:量化风险
- C#winform 经典小游戏贪吃蛇V1.0(一)
- 【教程】花100块钱DIY一台民航客机雷达
- ppfilm.exe
- python调用latex,在Python中使用LaTeX符号格式化数字
- 大数据如何帮助人工智能?