4

正如我从教程pnpm中了解到的那样,.registry.npmjs.orgnode_modules. 我的项目正在进行中typescript,我需要@typesnode_modules. 不过这@types也有node_modules/.registry.npmjs.org/@types。所以我收到如下错误:

/node_modules/.registry.npmjs.org/@types/jquery/3.3.5/node_modules/@types/jquery/index.d.ts(32,14): error TS2300: Duplicate identifier 'jQuery'.

...和

/node_modules/@types/jquery/index.d.ts(28,14): error TS2300: Duplicate identifier 'jQuery'.

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "lib": [
      "es5",
      "dom",
      "es2015.promise"
    ],
    "experimentalDecorators": true,
    "sourceMap": true,
    "allowSyntheticDefaultImports": true
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "scripts",
    "src/contracts"
  ]
}

任何想法如何解决它?

4

1 回答 1

1

为我"typeRoots": ["./node_modules/@types"]工作。

默认情况下tsc将在所有node_modules/@types文件夹中查找类型。

您可以通过调用来测试包含哪些文件tsc --listFiles

我想因为这个文件是typescript自己包含的,所以它也会包含 pnpm repo store 中的所有文件node_modules/.pnpm/@types

xxx/node_modules/.pnpm/typescript@3.9.7/node_modules/typescript/lib/lib.es5.d.ts

就我而言,我有多个版本的 React 在那里被阅读。

于 2021-02-02T00:03:43.263 回答