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 相关文章推荐
js实现简洁大方的二级下拉菜单效果代码
Sep 01 Javascript
jQuery的内容过滤选择器学习教程
Apr 18 Javascript
jQuery可见性过滤选择器用法示例
Sep 09 Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 Javascript
js获取指定时间的前几秒
Apr 05 Javascript
bootstrap动态添加面包屑(breadcrumb)及其响应事件的方法
May 25 Javascript
优化Vue项目编译文件大小的方法步骤
May 27 Javascript
分享Angular http interceptors 拦截器使用(推荐)
Nov 10 Javascript
vue页面切换项目实现转场动画的方法
Nov 12 Javascript
基于JavaScript获取url参数2种方法
Apr 17 Javascript
JS删除数组指定值常用方法详解
Jun 04 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 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
phpmyadmin安装时提示:Warning: require_once(./libraries/common.inc.php)错误解决办法
2011/08/18 PHP
php生成扇形比例图实例
2013/11/06 PHP
php+mysql实现简单的增删改查功能
2015/07/13 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
2019/04/16 PHP
javascript高级学习笔记整理
2011/08/14 Javascript
JS隐藏参数post传值实例
2013/04/18 Javascript
jQuery 获取/设置/删除DOM元素的属性以a元素为例
2014/05/23 Javascript
JavaScript onkeypress事件入门实例(按下或按住一个键盘按键)
2014/10/17 Javascript
jQuery中html()方法用法实例
2014/12/25 Javascript
javascript手工制作悬浮菜单
2015/02/12 Javascript
老生常谈JavaScript 函数表达式
2016/09/01 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
JS实现动态给标签控件添加事件的方法示例
2017/05/13 Javascript
微信小程序tabbar底部导航
2018/11/05 Javascript
vue v-for出来的列表,点击某个li使得当前被点击的li字体变红操作
2020/07/17 Javascript
微信小程序实现列表左右滑动
2020/11/19 Javascript
[02:53]2018年度DOTA2最佳战队-完美盛典
2018/12/17 DOTA
[01:42]DOTA2 – 虚无之灵
2019/08/25 DOTA
用smtplib和email封装python发送邮件模块类分享
2014/02/17 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python实现的字典值比较功能示例
2018/01/08 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
Python 类的特殊成员解析
2018/06/20 Python
python实现PolynomialFeatures多项式的方法
2021/01/06 Python
python中@contextmanager实例用法
2021/02/07 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
英国儿童设计师服装的领先零售商:Base
2019/03/17 全球购物
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
Ajax和javascript的区别
2013/07/20 面试题
领导干部廉政自律承诺书
2014/05/26 职场文书
法院干警四风问题自我剖析材料
2014/09/29 职场文书
婚宴领导致辞
2015/07/28 职场文书
社会心理学学习心得体会
2016/01/22 职场文书