忽略一个项目中的定义,而不忽略另一个项目中的定义

时间:2018-09-08 16:14:38

标签: typescript typescript-typings

我有一个工作区,其中有一个node_modules文件夹和一个src文件夹,其中包含我的 client server 打字稿代码。看起来像这样:

/node_modules
  /@types
    /node
    /requirejs
/src
  /client
    /admin
      /index.ts
      /tsconfig.json
    /public
      /index.ts
      /tsconfig.json
  /server
    /index.ts
    /tsconfig.json

我正在将requirejs用于我的客户端代码,并将node用于我的服务器代码。它们每个都有相似的类型,因此在构建代码时,会出现以下错误:

node_modules/@types/node/index.d.ts(6860,5): error TS2300: Duplicate identifier 'mod'.
node_modules/@types/requirejs/index.d.ts(38,11): error TS2300: Duplicate identifier 'mod'.
node_modules/@types/requirejs/index.d.ts(422,13): error TS2403: Subsequent variable declarations must have the same type.  Variable 'require' must be of type 'NodeRequire', but here has type 'Require'.

我的 client 代码是否可以忽略node定义,而我的 server 代码是否可以忽略requirejs定义? / p>

1 个答案:

答案 0 :(得分:1)

由于客户端和服务器版本分别具有tsconfig.json个文件,因此您只需要设置types compiler option即可限制每个版本中自动加载的node_modules/@types软件包。另外,您可以为两个构建分别设置node_modules目录。如果您无法解决此问题,请向您的问题中添加更多信息,我会再次查找。