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文件 的全部内容, 来源链接: utcz.com/z/378475.html