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高版本的坑