为避免在每个.vue文件中都引入一遍公共的.scss文件,打包之后产生冗余的代码,可引入全局的.scss文件。
此篇只是为了方便自己查看,若有不对之处欢迎指正,不喜勿喷,谢谢!
npm install sass-loader --save-dev
npm install node-sass --save-dev
npm install sass-resources-loader --save-dev
安装好依赖之后:
1、在build/webpack.base.conf.js中的module.rules中添加
module: {
rules: [
......
{
test: /\.scss$/,
loaders: ['style', 'css', 'sass']
},
......
]
2、在build/utils.js中引入全局scss
function generateLoaders (loader, loaderOptions) {
.....
return {
......
scss: generateLoaders('sass').concat({
loader: 'sass-resources-loader',
options: {
resources: [path.resolve(__dirname, '../src/assets/scss/*.scss')]
}
}),
......
}
补充1:若是使用时报this.getResolve is not a function at Object.loader......错误
原因是项目安装的sass版本高了,webpack编译时出错,我本地安装的是sass@8.0.0,使用的是webpack3,将sass版本改为7.3.1后再运行就OK了。