vue 单独引用sass文件

Posted cyj7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue 单独引用sass文件相关的知识,希望对你有一定的参考价值。

安装文件 sass-resources-loader:

npm install --save-dev sass-resources-loader

 修改build/utils.js:

全局文件引入 当然只想编译一个文件的话可以省去这个函数

function resolveResource(name) {  
  return path.resolve(__dirname, ../src/style/ + name);
}
function generateSassResourceLoader() {  
  var loaders = [
    cssLoader,  sass-loader,
    {      
      loader: sass-resources-loader,      
      options: { // 多个文件时用数组的形式传入,单个文件时可以直接使用 path.resolve(__dirname, ‘../static/style/common.scss‘
        resources: [resolveResource(theme.scss)]  
      }
    }
    ];   
 if (options.extract) {      
    return ExtractTextPlugin.extract({        
    use: loaders,        
    fallback: vue-style-loader
    })
  } else {      
    return [vue-style-loader].concat(loaders)
  }
}

 将默认的sass配置改为 generateSassResourceLoader()

return {
    css: generateLoaders(),
    postcss: generateLoaders(),
    less: generateLoaders(less),
    // vue-cli默认sass配置
    // sass: generateLoaders(‘sass‘, { indentedSyntax: true }), 
    // scss: generateLoaders(‘sass‘),
    // 新引入的sass-resources-loader
    sass: generateSassResourceLoader(),
    scss: generateSassResourceLoader(),
    stylus: generateLoaders(stylus),
    styl: generateLoaders(stylus)
}

改完配置后重启服务就可以在theme.scss里定义全局变量并在页面中引用了。

需要注意的是,scss里的变量是$开头,而less里的变量是@开头。比如我想定义一个项目的主色调变量,我可以在theme.scss里这样定义:

$main-color: #fd7a00;

 

以上是关于vue 单独引用sass文件的主要内容,如果未能解决你的问题,请参考以下文章

Vue中安装sass依赖,style引用出现报错。sass-loader高版本的坑

Vue中安装sass依赖,style引用出现报错。sass-loader高版本的坑

Vue 中sass的基本操作

vue中less文件全局引用

vue学习日记:在项目中引用sass

如何访问 Vue 组件中的 Sass 变量?