设置完成后执行npm run dev没有问题,但是打包的时候使用该变量的地方却都报错了。
配置代码如下:
webpack.base.config.js:
const lessConfig = {
globalVars: {
"primary": "#9187FD"
},
};
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
less: ExtractTextPlugin.extract({
use: ['css-loader', 'less-loader?'+JSON.stringify(lessConfig)}],
fallback: 'vue-style-loader'
})
}
}
]
}
报错信息如下:
Module build failed: ModuleBuildError: Module build failed:
text-align: center;
color: @primary;
Variable @primary is undefined
in D:\Code\pregnotice-webapp\src\components\ViewBox.vue (line 126, column 9)
非常困惑,不知道改怎么解决,请各位大神帮忙看看
已经解决,
@primary 这个变量已经在less-loader中配置。
一开始使用的是旧版的vue-cli 脚手架自动生成的webpack配置文件,其中vue-loader的配置文件引用了util.js,是脚手架封装的配置方法。
旧版
新版代码
比较两者可以发现一个传的是对象,一个传的是字符串参数,个人认为应该是webpack无法识别字符串参数导致的build出错,用新版的build.js替换后build就成功了