我有一个React应用程序,它位于一个单体npm组件包中。React应用程序作为演示站点,将此组件包作为整合步骤消耗,超过了Storybook本身的功能。
local-component-package
├── .storybook
├── demos
│ └── react
│ ├── node_modules
│ └── package.json
├── node_modules
├── src
├── .eslintignore
├── .eslintrc.json
└── package.json
组件库(父级目录)启用了ESLint,而演示应用程序没有。
当我构建并运行React演示应用程序时,可以看到适当的页面正在提供。但是,一旦我进行更改并且热重载该页面,就会出现以下错误:
Plugin "react" was conflicted between "../../.eslintrc.json" and "BaseConfig » /path/to/project/demos/react/node_modules/eslint-config-react-app/base.js".
看起来它告诉我演示程序中有一个npm包 (eslint-config-react-app
) 与基本 (或父级) .eslintrc.json
文件冲突,但我不确定为什么或如何解决这个问题。
这是我的演示应用的package.json
:
"dependencies": {
"react": "~16.8.5",
"react-dom": "~16.8.5",
"react-scripts": "5.0.0",
"local-component-package": "file:../../build"
},
注意:我的基础组件npm包使用yarn来获取最新版本的Storybook和Webpack以及许多必要的插件,使它们能够良好地协同工作。我运行的演示应用程序使用npm,因为它们模拟生产应用程序的运行。
我正在使用VSCode,并且安装了ESLint扩展
dbaeumer.vscode-eslint
。为了消除它不引起问题,我已将其禁用。上面指定的nodule_module确实出现在react演示应用程序的node_modules中,并且正在被使用其配置文件。我添加了一个
.eslintignore
文件,并在.eslintrc.json
中添加了ignorePatterns,但都没有生效。似乎该代码分析器并没有对此目录进行分析,因此忽略仍在发挥作用,但配置仍然冲突。
我想知道的是:
如果该模块并未明确作为node_modules的一部分,则为什么该模块在演示React应用程序中?
如何停止这些配置的冲突?
注意:我查看了以下未能帮助我的问题。
- Plugin "react" was conflicted between "package.json » eslint-config-react-app
- Error when deploying react app and it keeps sayings << Plugin "react" was conflicted between "package.json » eslint-config-react-app » >>
- Error when deploying react app and it keeps sayings << Plugin "react" was conflicted between "package.json » eslint-config-react-app » >>
我正在使用:
- macOS Monterey 12.1 (M1)
- Node v16.13.0
- npm 8.3.0
- yarn 1.22.17
如果您需要更多信息,请告诉我。
pwd
上报告不正确的大小写,使其变得更加奇怪... - sirclesam