我从tutorial中了解到pnpm创建了符号链接.registry.npmjs.org
和node_modules
下的其他入口点。我的项目在typescript
上,我有@types
用于node_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"
]
}
有什么解决办法吗?
2条答案
按热度按时间mnowg1ta1#
对我来说
"typeRoots": ["./node_modules/@types"]
起作用了。默认情况下,
tsc
将在所有node_modules/@types
文件夹中查找类型。您可以通过调用
tsc --listFiles
来测试包含哪些文件。我认为因为这个文件是由
typescript
本身包含的,那么它也将包含pnpm repo存储node_modules/.pnpm/@types
中的所有文件。在我的情况下,我有多个版本的React坐在那里得到阅读。
w46czmvw2#
将此添加到我的tsconfig.json文件中对我很有效: