1 2 3 4 5 6 7 8 | module.exports = { ... css: { ... esModule: false } ... } |
问题描述
vue文件中的样式失效
环境
- vue-cli 4.4.6
- css-loader 4.2.1
- vue-style-loader 4.1.2
原因
vue-cli 4.4.6
vue-cli 4.4.6
默认对css-loader
配置为空
css-loader 4.2.1
css-loader4.0后
默认对esModule
设置的是true
vue-style-loader 4.1.2
vue-style-loader 4.1.2
默认接收的是commonjs的结果,也就是默认接收的是“css-loader中esModule设置的是false的结果”,
所以一个配置的是true,一个接收的是false,最终就不会显示样式了。
方案
- 在项目的vue.config.js中对css的esModule改成false
- 修改vue-style-loader的源码
vue-style-loader/index.js:
1 2 3 4 5 6 | var shared = [ '// style-loader: Adds some css to the DOM by adding a <style> tag' , '' , '// load the styles' , 'var content = require(' + request + ').default;' , //这里加一个.default即可 ... |
- 修改css-loader源码,让esModule默认为false
css-loader/dist/utils.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function normalizeOptions(rawOptions, loaderContext) { if (rawOptions.icss) { loaderContext.emitWarning( new Error( 'The "icss" option is deprecated, use "modules.compileType: "icss"" instead' )); } const modulesOptions = getModulesOptions(rawOptions, loaderContext); return { url: typeof rawOptions.url === 'undefined' ? true : rawOptions.url, import: typeof rawOptions.import === 'undefined' ? true : rawOptions.import, modules: modulesOptions, // TODO remove in the next major release icss: typeof rawOptions.icss === 'undefined' ? false : rawOptions.icss, sourceMap: typeof rawOptions.sourceMap === 'boolean' ? rawOptions.sourceMap : loaderContext.sourceMap, importLoaders: rawOptions.importLoaders, esModule: typeof rawOptions.esModule === 'undefined' ? false : rawOptions.esModule //默认改成false }; } |
css-loader开发有点坑啊~ 之前版本都是false,更新后直接改成true
分类:
webpack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗