项目依赖的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踩坑记录相关推荐

  1. 转:android.support升级到androidx踩坑记录

    原文链接:android.support升级到androidx踩坑记录 - 简书 年前想着Google老大之前提醒过将项目升级到androidx,所以年前一通操作猛如虎把Android Studio唰 ...

  2. 为Jupyter notebook配置R kernel过程及踩坑记录

    为Jupyter notebook配置R kernel过程及踩坑记录 注意:本文为作者安装过程及折腾的过程,内容比较冗杂,如果读者想直接创建一个属于自己的子环境则参考: 如下文章: anaconda下 ...

  3. Dubbo3的Triple协议踩坑记录

    Triple协议踩坑记录 Triple协议 Triple 协议是 Dubbo3 提出的基于 HTTP2 + gRPC 的开放协议,完整兼容 gRPC over HTTP/2,旨在解决 Dubbo2 私 ...

  4. 日常踩坑记录-汇总版

    开发踩坑记录,不定时更新 心得 RTFM 严谨的去思考问题,处理问题 严格要求自己的代码编写习惯与风格 注意 单词拼写 20200207 mybatis plus 自带insert插入异常 sql i ...

  5. AirSim学习和踩坑记录(不定时更新)

    版权声明:本文为博主原创文章,遵循Creative Commons - Attribution-ShareAlike 4.0 International - CC BY-SA 4.0版权协议,转载请附 ...

  6. STF环境搭建运行及踩坑记录

    最初是在centos环境上搭建STF,由于种种依赖缺失.nodejs/npm版本不兼容.以及无解的"Segmentation fault (core dumped)"错误,最终还是 ...

  7. Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack3.3,python2.7,torch1.2,torchvision0.2.2)

    本文总结了自带系统安装cuda等深度学习环境和使用jetpack3.3刷机的步骤,虽然自己的代码没用上,但有需要的人可以参考一下. PS:Jetpack4.5的刷机教程请移步另一篇文章: xyl-50 ...

  8. Nvidia Jetson TX2 详细刷机教程及踩坑记录(Jetpack4.5.1,python3.6,torch1.6,torchvision0.7)

    最近接触到了Nvidia Jetson TX2这块开发板,想入手测试一下自己的深度学习模型,因此和TX2的故事开始了! 前言 本人刷机多次,尝试各种大小坑: 自带系统搭建环境:刚开始不想刷机,就自己手 ...

  9. 博途v17与winCC安装流程与踩坑记录

    博途v17与winCC7.5安装教程与踩坑记录 安装教程 博途安装流程 第一步 注册表删除 第二步 启用.NET Framework服务 第三步 正式安装 winCC安装流程 博途v17与winCC安 ...

最新文章

  1. NLP汉语自然语言处理原理与实践
  2. linux刷新磁盘的命令,sync命令 – 刷新文件系统缓冲区
  3. 马斯克用实力赢得信任!SpaceX获NASA批准,可用“二手”火箭和飞船载人航天
  4. 云炬WEB开发笔记 2-3git详细安装教程及下载太慢的解决办法
  5. 关闭系统进程,以及如何调用cmd并执行命令
  6. 防御sql和xss的php代码,PHP防XSS 防SQL注入的代码
  7. SpringMVC自学日志03(SpringMVC注解)
  8. bmklocationmanager方法没有回调_关于node中的回调(必学)
  9. 数据库锁 与 事务隔离级别
  10. AI:AI与爱无处不在,大赛与奖金齐飞—【科大讯飞】AI开发者大赛—与你在AI盛会中遨游!
  11. S32K1xx系列MCU的EEE(Emulated EEPROM)使用详解
  12. 2020幻影围棋 围棋规则模块(二)
  13. 白鹤芋一帆风顺花怎么养 一帆风顺花养殖方法及注意事项
  14. chrome主页被篡改后缀为?tn=49055317_4_hao_pg
  15. Python量化教程:量化风险
  16. C#winform 经典小游戏贪吃蛇V1.0(一)
  17. 【教程】花100块钱DIY一台民航客机雷达
  18. ppfilm.exe
  19. python调用latex,在Python中使用LaTeX符号格式化数字
  20. 大数据如何帮助人工智能?

热门文章

  1. 什么是构造方法,构造方法的特征,作用
  2. python自动测试h_软件自动化测试资源列表
  3. 以太坊变红,为什么 ETH 必须持有这个关键支持
  4. 大学校园做地推用什么礼品
  5. mysql 视图查询_MySQL视图复杂查询详解
  6. 做深度学习训练记录log文件
  7. 视频中NTSC/PAL制式
  8. 语言计算:信息科学技术中长期发展的战略制高点
  9. Android_01
  10. 2023年,消失的金三银四