如何使用 sass-resources-loader 与 vue-cli@3.x 来添加全局的 scss 变量和 mixin。
正如您在 文档 中看到的那样,最简单的方法是使用loaderOptions来处理Sass预处理器。不需要任何额外的依赖项:
module.exports = {
css: {
loaderOptions: {
sass: {
prependData: `
@import "@/scss/_variables.scss";
@import "@/scss/_mixins.scss";
`
}
}
}
};
vue-cli@3.x使用webpack-chain来管理其webpack配置。要将sass-resources-loader添加到预定义的webpack配置中,请在vue.config.js
中添加以下内容:
vue.config.js
const path = require('path')
module.exports = {
lintOnSave: false,
chainWebpack: (config) => {
config
.module
.rule('vue')
.use('vue-loader')
.tap((options) => {
options.loaders.scss = options.loaders.scss.concat({
loader: 'sass-resources-loader',
options: {
resources: path.resolve('./src/scss/_variables.scss'),
},
})
return options
})
config
.module
.rule('scss')
.use('sass-resources-loader')
.loader('sass-resources-loader')
.options({
resources: path.resolve('./src/scss/_variables.scss'),
})
},
}
css: {
loaderOptions: {
stylus: {
loader: 'stylus-resources-loader',
import: [path.resolve(__dirname, 'src/styles/imports.styl')]
}
}
}