今天在项目中需要用到 semver
这个库,然后我按照之前的经验,就直接执行 npm i @types/semver
但是在使用的时候,竟然出现了以下错误
但是我之前开发中,我的 node
和 express
只安装了 @types
的版本。并且可以正常使用。
问题: @types
只包含包的声明文件?还是也包含包本身呢?(或者说有些包只包含依赖,有些包本身和声明文件都被包含了呢?)
今天在项目中需要用到 semver
这个库,然后我按照之前的经验,就直接执行 npm i @types/semver
但是在使用的时候,竟然出现了以下错误
但是我之前开发中,我的 node
和 express
只安装了 @types
的版本。并且可以正常使用。
问题: @types
只包含包的声明文件?还是也包含包本身呢?(或者说有些包只包含依赖,有些包本身和声明文件都被包含了呢?)
13 回答13k 阅读
8 回答2.8k 阅读
2 回答5.2k 阅读✓ 已解决
5 回答1.4k 阅读
3 回答2.3k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
3 回答975 阅读✓ 已解决
@types/*
是不包含本体的。有的库,本体就已经自带类型声明,不需要额外安装
@types/*
,比如vue
。但有的库,本体和类型声明是分开的,比如
react
和@types/react
,需要分开装。一般来说,只安装
@types/*
并不会带上本体。你的项目里某些库只安装@types/*
也能跑,是因为其他包间接依赖了它,所以也出现在node_modules
里了;或者你已经把express
安装在了全局,虽然项目里没找到express
,但从全局安装位置找到了。