排除已安装依赖项中的@types输入

时间:2018-02-09 10:42:33

标签: typescript typescript-typings

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

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

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

是否有可能使typescript编译器忽略该局部依赖的输入?

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您是否尝试对types选项使用空数组?

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

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

有关更多详细信息,请参见TypeScript documentation

答案 2 :(得分:-4)

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