每次我想在 Nodejs 项目中使用类型化包时,我都必须做两件事:
- 首先,安装原始包。例如:
npm install express -S
- 其次,安装其类型定义包。
npm install @types/express -D
我的问题是,当我必须执行两个步骤才能再使用一个包时,我感到懒惰和有点累。有什么方法可以更快/更智能地做到这一点?
最佳答案
Bash 扩展怎么样?
如果您有能力使用与 Bash 兼容的 shell(例如,您使用的是 Linux/macOS/cygwin),则可以使用 shell 的大括号扩展功能:
npm i -S {,@types/}express
这相当于:
npm i -S express @types/express
但问题是,它的包和类型都将保存为 dependencies
,不是devDependencies
在package.json
。我们还可能想同时安装多个包(以及它们的类型)。因此,让我们改进我们的命令来解决这个问题:
echo express lodash | xargs -n 1 -I % sh -c 'npm i -S %; npm i -D @types/%'
这将安装 express
和lodash
,还有@types
对于他们来说。此命令还将放置 @types
正确打包在 devDependencies
.
我们可以进一步改进这一点,因为现在它将执行单独的 npm
为每个包运行,及其 @types
。让我们看看我们还能做什么:
P='express lodash' eval 'npm i -S $P; npm i -D `echo $P | sed -E "s/[a-z0-9]+/@types\/&/g"`'
这将运行npm i
正如预期的那样,两次:
-
npm i -S express lodash
-
npm i -D @types/express @types/lodash
这是功能最齐全的方法,但对于大多数情况来说可能过于繁重。
希望这有帮助!
关于node.js - 安装 Node 包类型的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46657553/