我已经使用具有以下高级结构的 NPM 工作区设置了我的 monorepo:
root
common // Shared package, named @company/common
src
...
package.json
tsconfig.json
web // ReactJS package, named @company/web
config
...
public
...
src
...
package.json
tsconfig.json
mobile // React Native package, named @company/mobile
...
package.json
tsconfig.json
.eslintrc.json
.prettierrc
package.json
tsconfig.json
tsconfig.base.json
我所有的包都是私有的,并且在它们各自的package.json
文件中都被标记为私有。
我已经成功地设置了一切,以便我可以在 Web 和移动工作区中编写这样的代码:
import { ITestInterface } from '@company/common';
使用我当前的设置,每当我打开任何从以下位置导入任何内容的文件时,我都会在 IDE(VS 代码)中收到 eslint 警告@company/common
:
'@company/common' should be listed in the project's dependencies. Run 'npm i -S @company/common' to add it
如果可能的话,我宁愿不完全禁用此警告。有没有办法配置 eslint 让它理解 monorepos,这样当我尝试从我的 monorepo 中的包(工作区)导入某些东西时它不会给我警告?