我知道它涉及修改vue.config.js
,但只是在configureWebpack
对象中粘贴我想要的配置似乎不起作用。有没有其他人能够解决这个问题?
要添加的配置:
module: {
rules: [
{
test: /\.vue$/,
use: [
{
loader: "vue-loader",
options: {
loaders: {
stylus: [
{
loader: "stylus-resources-loader",
options: {
resources:
"./src/assets/_base.styl",
},
},
],
},
},
},
],
},
],
},
谢谢!
答案 0 :(得分:2)
const path = require('path');
module.exports = {
chainWebpack: (config) => {
config.module
.rule('vue')
.use('vue-loader')
.tap((options) => {
options.loaders.stylus = options.loaders.stylus.concat({
loader: 'stylus-resources-loader',
options: {
resources: path.resolve('./src/assets/_base.styl'),
},
});
return options;
});
},
};
更新:
应该注意lang
中<style lang="stylus">
属性的值会影响配置项的编写方式!
如果lang
为stylus
,则stylus
将安装在loader
上,其编写方式如下:options.loaders.stylus
,以及lang
的值}是styl
,应该写成options.loaders.styl
。
由于@vue/cli-service/lib/webpack/CSSLoaderResolver.js
中的以下代码:
getLoader (test, loader, options = {}) {
styl (test = /\.styl$/) {
return this.getLoader(test, 'stylus')
}
stylus (test = /\.stylus$/) {
return this.getLoader(test, 'stylus')
}
}