繁体   English   中英

在已安装的依赖项中排除 @types 类型

[英]Exclude @types typings in installed dependencies

是否可以在已安装的依赖项中排除全局类型?

我安装了本地依赖项。 这也复制了该依赖项的 node_modules 文件夹。 此 node_modules 文件夹包含已安装的 @types 类型。 这些与为主项目安装的 @types 类型冲突。

例如。 project-path/node_modules/local-dependency/node_modules/@types/reactproject-path/node_modules/@types/react冲突。

是否可以让打字稿编译器忽略该本地依赖项中的类型?

您是否尝试将空数组用于types选项?

{
  "compilerOptions": {
    ...,
    "types": []
  }
}

这将禁用类型的自动包含。

有关更多详细信息,请参阅TypeScript 文档

或者,在编译器选项中使用"skipLibCheck": true

您可以使用 tsconfig.json 中的includeexclude属性对 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 安装模块的单个共享版本,消除任何冲突的可能性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM