vue-cli设置css不生效的解决方法


Posted in Javascript onFebruary 07, 2020

我们有的项目使用的是老的vue-cli脚手架生成的,今天想写点东西,发现.vue文件里面 style 里面写的样式都不生效了,很自然就想到是不是loader的问题。

在这种项目的webpack.base.config.js一般设置loader的

rules: [
   ...(config.dev.useEslint ? [createLintingRule()] : []),
   {
    test: /\.vue$/,
    loader: 'vue-loader',
    options: vueLoaderConfig
   },
   {
    test: /\.js$/,
    loader: 'babel-loader',
    include: [resolve('src'), resolve('test')]
   },
   ...
}

很显然,我们在.vue文件里面的样式怎么生效跟.vue的这个loader有关了。

上面的 vueLoaderConfig 是对 vue-loader 的配置

打印出来如下:

vue-cli设置css不生效的解决方法

通过阅读/build/utils.js的源码我们很容易知道上面返回的 loaders 就是针对 csspostcss 等的对象,每一项的值是一个数组,它是类似于 [css-loader信息, postcss-loader信息] 的数组,并且第一个是css-loader信息,由于是loader的加载顺序是从右到左的,所以最后一个使用的是css-loader。

以前这样写是没有问题,现在打开好久不用的老项目删除node-modules后重新安装发现问题,我猜测多半是vue-loader之类的升级版本了,毕竟我们使用的 package.json 默认并没有锁定版本。我们安装的很可能并不是我们在 package.json 里面写的版本。

解决方案

方法一

现在只用再加上vue-style-loader即可,也就是使用[vue-style-loader信息, css-loader信息, postcss-loader信息]即可。
我们可以更改.vue的loader相关配置

{
    test: /\.vue$/,
    loader: 'vue-loader',
    // options: vueLoaderConfig
    options: {
      loaders: {
       'scss': 'vue-style-loader!css-loader!sass-loader',
       'sass': 'vue-style-loader!css-loader!sass-loader?indentedSyntax'
     }
    }
   },

方法二

也可以更改/build/utils.js里面,讲默认的css-loader改一下,在前面加入vue-style-loader即可

vue-cli设置css不生效的解决方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用jQuery的deferred对象实现异步按顺序加载JS文件
Mar 17 Javascript
js中confirm实现执行操作前弹出确认框的方法
Nov 01 Javascript
jQuery中queue()方法用法实例
Dec 29 Javascript
JavaScript脚本库编写的方法
Dec 09 Javascript
JavaScript实现图片瀑布流和底部刷新
Jan 02 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
JS实现select选中option触发事件操作示例
Jul 13 Javascript
利用d3.js实现蜂巢图表带动画效果
Sep 03 Javascript
javascript设计模式 ? 外观模式原理与用法实例分析
Apr 15 Javascript
JavaScript实现网页留言板功能
Nov 23 Javascript
JS实现扫雷项目总结
May 19 Javascript
5种方法告诉你如何使JavaScript 代码库更干净
Sep 15 Javascript
js生成1到100的随机数最简单的实现方法
Feb 07 #Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 #Javascript
JavaScript实现Excel表格效果
Feb 07 #Javascript
js实现自动播放匀速轮播图
Feb 06 #Javascript
node爬取新型冠状病毒的疫情实时动态
Feb 06 #Javascript
vue 检测用户上传图片宽高的方法
Feb 06 #Javascript
vue中对象数组去重的实现
Feb 06 #Javascript
You might like
PHP 页面编码声明方法详解(header或meta)
2010/03/12 PHP
zend optimizer在wamp的基础上安装图文教程
2013/10/26 PHP
php更新修改excel中的内容实例代码
2014/02/26 PHP
PHP下通过QRCode类库创建中间带网站LOGO的二维码
2014/07/12 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
PHP变量的作用范围实例讲解
2020/12/22 PHP
extjs 列表框(multiselect)的动态添加列表项的方法
2009/07/31 Javascript
让JavaScript的Alert弹出框失效的方法禁止弹出警告框
2014/09/03 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
javascript动态添加checkbox复选框的方法
2015/12/23 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
Vuejs 页面的区域化与组件封装的实现
2017/09/11 Javascript
在axios中使用params传参的时候传入数组的方法
2018/09/25 Javascript
一文搞懂ES6中的Map和Set
2019/05/20 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
[01:15:00]LGD vs Mineski Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python 将数据保存为excel的xls格式(实例讲解)
2018/05/03 Python
Python中的函数作用域
2018/05/07 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
python实现图片中文字分割效果
2019/07/22 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
Python matplotlib模块及柱状图用法解析
2020/08/10 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
阿里巴巴英国:Alibaba英国
2019/12/11 全球购物
.NET remoting的两种通道是什么
2016/05/31 面试题
北京麒麟网信息技术有限公司网络游戏测试面试题
2013/09/28 面试题
教师听课学习心得体会
2016/01/15 职场文书
python cv2图像质量压缩的算法示例
2021/06/04 Python
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
利用python进行数据加载
2021/06/20 Python
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python