node.js - 安装 Node 包类型的最快方法?

标签 node.js typescript npm

每次我想在 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 ,不是devDependenciespackage.json 。我们还可能想同时安装多个包(以及它们的类型)。因此,让我们改进我们的命令来解决这个问题:

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

这将安装 expresslodash ,还有@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正如预期的那样,两次:

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

这是功能最齐全的方法,但对于大多数情况来说可能过于繁重。

希望这有帮助!

关于node.js - 安装 Node 包类型的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46657553/

相关文章:

typescript - 是否可以检测到不必要的类型保护?

javascript - TypeScript Intellisense 和 jQuery 问题

node.js - 有没有办法强制 npm 从 Intranet 位置安装所有依赖项

javascript - 如何在安装任何 npm 模块之前运行脚本?

npm5 相当于yarn 的 --pure-lockfile 标志?

node.js - 错误 : Parse Error Issue whike Making get request using any library

node.js - 错误: RootQueryType. 解析字段config must be an object

javascript - 为 Node 应用程序设置正确的结构

javascript - 在解决初始 promise 后,如何在迭代数组时链接多个 promise ?

typescript - 扩展库的类型