为节点包安装类型的最快方法



每次我想在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,而不是package.json中的devDependencies。我们可能还想同时安装几个软件包(以及它们的类型)。因此,让我们改进我们的命令来解释这一点:

echo express lodash | xargs -n 1 -I % sh -c 'npm i -S %; npm i -D @types/%'

这将同时安装expresslodash,还将为它们安装@types。此命令还将把@types程序包正确放置在devDependencies中。

我们可以进一步改进,因为现在它将为每个包及其@types单独运行npm。让我们看看我们还能做些什么:

P='express lodash' eval 'npm i -S $P; npm i -D `echo $P | sed -E "s/[a-z0-9]+/@types/&/g"`'

这将按预期运行npm i两次:

  1. npm i -S express lodash
  2. npm i -D @types/express @types/lodash

这是功能最完整的方法,但在大多数情况下可能过于繁重。

希望这能有所帮助!

相关内容

最新更新