javascript - 无法在 monorepo vue 应用程序的故事书中使用 scss - 模块构建错误 lang="scss"
问题描述
我在现有的 monorepo 中添加故事书,并在尝试通过以下方式添加 scss 时不断出错<style lang="scss">
:
ModuleBuildError: Module build failed (from ./node_modules/style-loader/dist/cjs.js):
TypeError: this.getOptions is not a function
这是monorepo结构的轮廓:
package.json
.storybook
|_ main.js
|_ preview.js
client
|_package.json
|_ src
|_components
|_styles
|_stories
相关的根 package.json 如下所示:
"scripts": {
"build": "yarn workspaces foreach run build",
"storybook": "start-storybook -p 6006",
"build-storybook": "build-storybook"
},
"devDependencies": {
"@mdx-js/react": "^1.6.22",
"@storybook/addon-actions": "^6.3.7",
"@storybook/addon-docs": "^6.3.7",
"@storybook/addon-essentials": "^6.3.7",
"@storybook/addon-links": "^6.3.7",
"@storybook/addon-postcss": "^2.0.0",
"@storybook/preset-scss": "^1.0.3",
"@storybook/vue3": "^6.3.7",
"@types/mdx-js__react": "^1",
"css-loader": "^6.2.0",
"node-sass": "^6.0.1",
"sass-loader": "^12.1.0",
"style-loader": "^3.2.1",
"vue-loader": "^16.5.0"
}
这是我的 .storybook/main.js
const path = require('path');
module.exports = {
"stories": [
"../client/src/stories/**/*.stories.mdx",
"../client/src/stories/**/*.stories.@(js|jsx|ts|tsx)"
],
"addons": [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/preset-scss"
],
webpackFinal: async (config, { configType }) => {
config.module.rules.push(
{
test: /\.scss$/,
use: ['style-loader', 'css-loader', 'sass-loader'],
include: path.resolve(__dirname, '../'),
}
);
return config;
},
}
在我的 vue 组件中,尝试使用<style lang="scss">
会引发上述错误。我认为 scss 将由 .storybook/main.js 中所做的更改来处理,但它不起作用,我想知道它是否与 monorepo 和两个 package.json 有关,或者它是否与其他东西有关。
解决方案
根据您提供的 package.json,您可能会遇到此错误:
https://github.com/webpack-contrib/sass-loader/issues/923
简而言之,在sass-loader v11.0.0
没有 Webpack v5 的情况下使用 Vue 3 或更高版本会导致此错误。临时解决方案可能是安装已知兼容版本sass-loader
:
npm install --save-dev sass-loader@10.1.1
或者,如果使用纱线:
yarn add --save-dev sass-loader@10.1.1
推荐阅读
- python - 迭代列表,每次删除一个元素
- vulkan - Vulkan 验证失败提升了设备扩展依赖
- amazon-web-services - DynamoDB C# 无法将字符串转换为整数错误
- r - R中具有二进制数据的As.numeric函数
- apache-spark - spark scala insert overwrite hive 花费的时间太长
- reactjs - React hooks - 没有持续更新
- python - 如何在方法内部使用构造函数中的变量?
- postgresql - 删除 Postgres 中的所有数据类型
- r - pivot_longer 无法转换为行,而是保留列
- r - 如何根据值对分组条形图中的条形重新排序