全局引入common.less,并全局使用里面的变量,默认是不行的,只能每个文件去引入
后来找个文章vue-cli中使用Less全局变量,无需一次次导入,结果一直报错* !!vue-style-loader!css-loader?{"sourceMap":true}! ,下载了node-sass sass-loader css-loader style-loader vue-style-loader还是不行
又找文章webpack + vue + less 全局变量的解决方案(找个没有修改下面的return,也不行),把那个函数复制过去覆盖了,居然就好了,原来是错的那个写的是 loader: 'less-resources-loader',对的是 loader: 'sass-resources-loader',后来把刚下载的插件全删掉又报错,然后在下载css-loader就好了
npm install sass-resources-loader css-loader --save-dev
在./build/utils.js 的exports.cssLoaders中添加lessResourceLoader
function lessResourceLoader() {
var loaders = [
cssLoader,
'less-loader',
{
loader: 'sass-resources-loader',
options: {
resources: [
path.resolve(__dirname, '../src/assets/style/common.less'),
]
}
}
];
if (options.extract) {
return ExtractTextPlugin.extract({
use: loaders,
fallback: 'vue-style-loader',
publicPath: '../../' /*记得加上这句,否则build后的css内的图片背景有问题*/
})
} else {
return ['vue-style-loader'].concat(loaders)
}
}
其中'../src/assets/style/common.less'路径改成自己对应的文件
然后再return{}块中的less: generateLoaders('less') 替换成 less: lessResourceLoader()
main.js中也不需要在引入common.less了
又发现新的问题是这样引入的common.less,里面的变量到是可以用了,但那些重置的代码都没生效,只能先在app的style先引入了