我在一个整体 npm 组件包内有一个 React 应用程序。 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"
},
Note:我的基本组件 npm 包使用 Yarn 来获取最新版本的 Storybook 和 Webpack 以及众多必要的插件,以便能够很好地协同工作。我运行的演示应用程序使用 npm,因为它们模拟运行的生产应用程序。
-
我正在使用 VSCode 并且有 ESLint 扩展dbaeumer.vscode-eslint
安装。我已禁用它以消除它不会引起问题。上面指定的 nodule_module 确实出现在 React 演示应用程序的 node_modules 中,并且其配置正在被使用。
-
我添加了一个.eslintignore
文件并添加了ignorePatterns.eslintrc.json
这也没有生效。 linter 似乎并没有真正对该目录进行 linting,因此似乎忽略正在工作,但配置仍然发生冲突。
我想知道的是:
Note:我查看了以下问题,但对我没有帮助。
- 插件“react”与“package.json » eslint-config-react-app 之间发生冲突”
- 部署 React 应用程序时出错,并且一直显示 > 之间存在冲突”
- 部署 React 应用程序时出错,并且一直显示 > 之间存在冲突”
我在用:
- macOS 蒙特利 12.1 (M1)
- 节点 v16.13.0
- npm 8.3.0
- 纱线 1.22.17
如果您需要更多信息,请与我们联系。