vue scss定义全局变量
利用sass-resources-loader定义全局css变量sass-resources-loader可以访问sass资源任何一个需要访问的sass模块。所以,我们可以利用他去实现变量定义。步骤1.安装sass-resources-loader插件npm install --save-dev sass-resources-loader2.在 build 文件夹下找到 u...
·
利用sass-resources-loader定义全局css变量
sass-resources-loader可以访问sass资源任何一个需要访问的sass模块。所以,我们可以利用他去实现变量定义。
步骤
1.安装sass-resources-loader插件
npm install --save-dev sass-resources-loader
2.在 build
文件夹下找到 util.js
修改sass编译器loader的配置
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader] : [cssLoader];
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
});
}
// Extract CSS when that option is specified
// (which is the case during production build)
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader'
});
} else {
return ['vue-style-loader'].concat(loaders);
}
}
// https://vue-loader.vuejs.org/en/configurations/extract-css.html
return {
css: generateLoaders(),
postcss: generateLoaders(),
less: generateLoaders('less'),
/* sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass'), */
sass: generateLoaders('sass', { indentedSyntax: true }),
scss: generateLoaders('sass').concat({
loader: 'sass-resources-loader',
options: {
resources: path.resolve(__dirname, '../src/assets/styles/vars.scss')
}
}),
stylus: generateLoaders('stylus'),
styl: generateLoaders('stylus')
};
};
其中修改的就是
scss: generateLoaders('sass').concat({ loader: 'sass-resources-loader', options: { resources: path.resolve(__dirname, '../src/assets/styles/vars.scss') } }),
3.在 main.js
中引用 vars.scss 文件,重启服务,其中定义的变量在其他组件就可以使用了。
4.使用方法
vars.scss
$my-theme-color: #e63955; $my-line-color: #e8e8e8;
其他文件scss引入使用
color: $my-theme-color;
好啦,这样就完成引用啦~
更多推荐
已为社区贡献5条内容
所有评论(0)