gpt4 book ai didi

vue.js - 使用 Vue Storybook 时无法编译 sass

转载 作者:行者123 更新时间:2023-12-04 09:33:20 26 4
gpt4 key购买 nike

我正在尝试在 vue 上创建故事书。我的组件使用 sass 编写。所以,我在 .storybook/main.js 中做了这个:

webpackFinal: (config) => {
config.module.rules.push({
test: /\.s[ac]ss$/i,
use: [
// Creates `style` nodes from JS strings
'style-loader',
// Translates CSS into CommonJS
'css-loader',
// Compiles Sass to CSS
'sass-loader',
],
})

return config
}

样式看起来像这样:

<style lang="sass" scoped>
button
background-color: red
</style>

所以我在尝试编译时遇到了这个错误:

SassError: Invalid CSS after "": expected 1 selector or at-rule, was "button"
on line 1 of C:\Code\testproj\src\components\UI\TestComponent.vue

如果我把我的风格改成这样:

<style lang="sass" scoped>
button {
background-color: red
}
</style>

一切正常,但这不是 sass 语法。

最佳答案

我遇到了完全相同的问题,但我能够解决它。问题来自 webpack 配置。如果您使用的是 SASS,则 .storybook 文件夹中的 webpack.config.js 文件应如下所示:

module.exports = ({ config }) => {
config.module.rules.push({
test: /\.sass$/,
use: [
require.resolve("vue-style-loader"),
require.resolve("css-loader"),
{
loader: require.resolve("sass-loader"),
options: {
sassOptions: {
indentedSyntax: true
}
}
}
],
});

return config;
};

如果你使用的是 SCSS,那么它应该是这样的:

module.exports = ({ config }) => {
config.module.rules.push({
test: /\.scss$/,
use: [
require.resolve("vue-style-loader"),
require.resolve("css-loader"),
require.resolve("sass-loader"),
],
});

return config;
};

我在阅读 Vue Loader Docs 时弄明白了这一点

关于vue.js - 使用 Vue Storybook 时无法编译 sass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62720265/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com