npm 安装 node-sass 失败,修改element-ui主题色时加载sass失败

阅读 (3499)
用淘宝 NPM 镜像替换

用淘宝 NPM 镜像替换

npm i cnpm -g --registry=http://registry.npm.taobao.org

cnpm i sass-loader -g //有sass loader以后,node-sass才可用
cnpm i node-sass -g // 加-g是全局安装,可以去掉后到自己工程中安装

顺便提一个引用sass报错的问题

我用了vue+element-ui 在修改ui主题色时,安官网介绍的方法

在项目中改变 SCSS 变量

Element 的 theme-chalk 使用 SCSS 编写,如果你的项目也使用了 SCSS,那么可以直接在项目中改变 Element 的样式变量。新建一个样式文件,例如 element-variables.scss,写入以下内容:

/* 改变主题色变量 */
$--color-primary: teal;

/* 改变 icon 字体路径变量,必需 */
$--font-path: '~element-ui/lib/theme-chalk/fonts';

@import "~element-ui/packages/theme-chalk/src/index";

之后,在项目的入口文件中,直接引入以上样式文件即可(无需引入 Element 编译好的 CSS 文件):

import Vue from 'vue'
import Element from 'element-ui'
import './element-variables.scss' // 这一句在打包时会报错

Vue.use(Element)

在StackOverflow上找到类似问题,原因是.style文件引入过程中,webpack打包stylus-loader->postcss->css->style,打包完后,vue自身又会在自动打包一次也就是stylus-loader->postcss->css->style => stylus ->postcss -> css

解决办法是:不通过require和import引入.style文件,通过<style>标签引入

在App.vue中添加即可正常打包并修改样式

<style lang="scss">
  @import "./style/scss/element-variables";
</style>

 

更新于:2018-12-08 14:03:51
返回顶部