Spe*_*pen 42 typescript reactjs
我有同样的问题:
React typescript(2312,14):重复标识符'LibraryManagedAttributes'
和
TypeScript错误:重复标识符'LibraryManagedAttributes'
但我找不到任何解决方案.
我已经升级到最新的node/npm/yarn/typescript版本.还尝试降级.什么都没有帮助.
yarn build --verbose
yarn run v1.9.4
$ react-scripts-ts build --verbose
Creating an optimized production build...
Starting type checking and linting service...
Using 1 worker with 2048MB memory limit
ts-loader: Using typescript@3.0.3 and C:\dev\project\frontend\tsconfig.prod.json
Warning: member-ordering - Bad member kind: public-before-private
Failed to compile.
C:/dev/project/frontend/node_modules/@types/prop-types/node_modules/@types/react/index.d.ts
(2312,14): Duplicate identifier 'LibraryManagedAttributes'.
error Command failed with exit code 1.
Run Code Online (Sandbox Code Playgroud)
--verbose
不知何故不给我更多信息.
我可以看到LibraryManagedAttributes
定义如下:
node_modules/@types/react/index.d.ts
node_modules/@types/prop-types/node_modules/@types/react/index.d.ts
node_modules/@types/react-overlays/node_modules/@types/react/index.d.ts
这是从哪里来的?我怎么能避免这种情况?
我想找出这个错误的来源,以便我可以向正确的实体报告,但我不知道从哪里开始.
我还能尝试什么?
小智 84
这似乎发生了,因为Yarn解析了一个包的多个版本; @types/react
在这种特殊情况下.纱线@types/react
从你的package.json中解析出来并作为依赖@types/react-dom
.
从我的package.json中获取以下代码段:
"devDependencies": {
"@types/react": "^15.0.16",
"@types/react-dom": "^0.14.23"
...
}
Run Code Online (Sandbox Code Playgroud)
运行后创建的yarn.lockyarn install
包含类似于此的内容:
"@types/react-dom@^0.14.23":
version "0.14.23"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-0.14.23.tgz#cecfcfad754b4c2765fe5d29b81b301889ad6c2e"
dependencies:
"@types/react" "*"
"@types/react@*":
version "16.4.14"
resolved "https://registry.yarnpkg.com/@types/react/-/react-16.4.14.tgz#47c604c8e46ed674bbdf4aabf82b34b9041c6a04"
dependencies:
"@types/prop-types" "*"
csstype "^2.2.0"
"@types/react@^15.0.16":
version "15.6.19"
resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.19.tgz#a5de18afe65b0f29767328836b48c498a5d3a91b"
Run Code Online (Sandbox Code Playgroud)
请注意,@types/react-dom
取决于@types/react
所指示的任何版本"*"
.纱线分解了两个版本@types/react
:"16.4.14"
和"15.6.19"
.这会导致您提到的类型冲突.
解决方案是在package.json中添加一个resolution字段,告诉Yarn解析特定版本的.请参考以下示例:@types/react
"resolutions": {
"@types/react": "^15.0.16"
}
Run Code Online (Sandbox Code Playgroud)
再跑yarn install
一次.注意yarn.lock文件中的更改:
"@types/react-dom@^0.14.23":
version "0.14.23"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-0.14.23.tgz#cecfcfad754b4c2765fe5d29b81b301889ad6c2e"
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@^15.0.16":
version "15.6.19"
resolved "https://registry.yarnpkg.com/@types/react/-/react-15.6.19.tgz#a5de18afe65b0f29767328836b48c498a5d3a91b"
Run Code Online (Sandbox Code Playgroud)
Yarn现在"15.6.19"
为两者"@types/react@*"
和"@types/react@^15.0.16"
依赖项解析相同的版本.
我想知道自己为什么需要这样做.我希望Yarn能够理解它可以解决依赖关系"@types/react" "*"
,"@types/react@^15.0.16"
而不是使用最新版本来解决它@types/react
.
Spe*_*pen 30
这似乎是打字稿问题.
我目前的解决方法是添加"skipLibCheck": true
到tsconfig.json
.
我想强调,这只是一种解决方法,而不是解决问题.
小智 17
我得到了同样的错误。我设法通过删除我的“@types/react”然后再次安装它们来修复它。
yarn remove @types/react
yarn add --dev @types/react
Run Code Online (Sandbox Code Playgroud)
mon*_*uen 17
对我来说,我不得不作出反应,重复的类型react-redux
,react
以及react-intl
当我升级react-intl
。到目前为止对我有用的最少侵入性修复是运行这个:
npx yarn-deduplicate --packages @types/react yarn.lock
如果锁定文件的结果差异看起来正确,请继续并删除node_modules
,然后yarn
从已删除重复的锁定文件中获取新包。
Ben*_*uer 10
@types/react
就我而言,当(v17.0.3) 和@types/react-dom
(v17.0.2) 的版本号不同步时,就会出现错误。
为了解决这个问题,我删除了它,@types/react
因为它是从@types/react-dom
. 您可以通过执行来验证这一点yarn why @types/react
。
在我们的例子中,我们通过以下方式修复了它
将所有@types/*
包移动到devDependencies
rm -rf yarn.lock
和rm -rf node_modules
yarn install
再次运行
归档时间: |
|
查看次数: |
17584 次 |
最近记录: |