如何在 Vue CLI 3 中使用 stylus-resources-loader?
问题:如何在 Vue CLI 3 中使用 stylus-resources-loader? 我知道它涉及修改vue.config.js,但简单地将我想要的配置粘贴到configureWebpack对象中似乎不起作用。有没有其他人能够解决这个问题? 想要添加的配置: module: { rules: [ { test: /\.vue$/, use: [ { loader: "vue-loader",
·
问题:如何在 Vue CLI 3 中使用 stylus-resources-loader?
我知道它涉及修改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",
},
},
],
},
},
},
],
},
],
},
谢谢!
解答
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;
});
},
};
更新:
需要注意的是<style lang="stylus">
中lang
属性的取值会影响配置项的写法!当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')
}
}
参考https://stackoverflow.com/a/49086022/4723163
更多推荐
已为社区贡献21234条内容
所有评论(0)