是否可以排除已安装依赖项中的全局类型?
我安装了一个本地依赖项。这也复制了该依赖项的node_modules文件夹。此node_modules文件夹保存已安装的@types类型。这些与为主项目安装的@types类型冲突。
EG。 project-path/node_modules/local-dependency/node_modules/@types/react
与project-path/node_modules/@types/react
冲突。
是否有可能使typescript编译器忽略该局部依赖的输入?
答案 0 :(得分:1)
或者,在编译器选项中使用"skipLibCheck": true
。
答案 1 :(得分:0)
您是否尝试对types
选项使用空数组?
{
"compilerOptions": {
...,
"types": []
}
}
这将禁用类型的自动包含。
有关更多详细信息,请参见TypeScript documentation。
答案 2 :(得分:-4)
您可以使用tsconfig.json中的include
和exclude
属性来更精细地控制TypeScript编译器包含的文件:
http://www.typescriptlang.org/docs/handbook/tsconfig-json.html
"include"
和"exclude"
属性采用类似于glob的文件模式列表。支持的glob通配符是:
- *匹配零个或多个字符(不包括目录分隔符)
- ?匹配任何一个字符(不包括目录分隔符)
- ** /递归匹配任何子目录
所以也许你可以这样做:
{
...
"exclude": [
"node_modules"
]
}
或者,根据您的需要,您可以设计一个更有针对性的glob模式,该模式仅排除一个依赖项的node_modules
目录,从而为您提供问题。
如果您可以控制示例中的local-dependency
模块,更好的解决方案是更新依赖项或您的应用程序以使用相同版本的@types/react
模块,删除您的npm模块,并做一个新的npm install
。这应该允许npm安装模块的单个共享版本,消除任何冲突的可能性。