Node.js 安装节点包类型的最快方法?
每次我想在我的Nodejs项目中使用类型化包时,我必须做两件事:Node.js 安装节点包类型的最快方法?,node.js,typescript,npm,Node.js,Typescript,Npm,每次我想在我的Nodejs项目中使用类型化包时,我必须做两件事: 首先,安装原始软件包。例如:npm安装快车-S 其次,安装its类型定义包npm安装@types/express-D 我的问题是,当我必须执行两个步骤才能使用更多的软件包时,我感到懒惰和有点累。有什么方法可以更快/更智能地实现这一点吗?Bash扩展如何 如果您有能力使用与Bash兼容的shell(例如,您使用的是Linux/macOS/cygwin),则可以使用shell的大括号扩展功能: npm i -S {,@types/
- 首先,安装原始软件包。例如:
npm安装快车-S
- 其次,安装its类型定义包<代码>npm安装@types/express-D
我的问题是,当我必须执行两个步骤才能使用更多的软件包时,我感到懒惰和有点累。有什么方法可以更快/更智能地实现这一点吗?Bash扩展如何 如果您有能力使用与Bash兼容的shell(例如,您使用的是Linux/macOS/cygwin),则可以使用shell的大括号扩展功能:
npm i -S {,@types/}express
这相当于:
npm i -S express @types/express
不过,问题是包和它的打字都将保存为依赖项
,而不是package.json
中的devdependency
。我们还可能希望同时安装几个软件包(以及它们的类型)。因此,让我们改进我们的命令来解释这一点:
echo express lodash | xargs -n 1 -I % sh -c 'npm i -S %; npm i -D @types/%'
这将为它们安装express
和lodash
,以及@types
。此命令还会将@types
包正确放置在devDependencies
中
我们可以进一步改进这一点,因为现在它将对每个包及其@类型执行单独的npm
运行。让我们看看我们还能做些什么:
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
希望这有帮助 Bash扩展如何 如果您有能力使用与Bash兼容的shell(例如,您使用的是Linux/macOS/cygwin),则可以使用shell的大括号扩展功能:
npm i -S {,@types/}express
这相当于:
npm i -S express @types/express
不过,问题是包和它的打字都将保存为依赖项
,而不是package.json
中的devdependency
。我们还可能希望同时安装几个软件包(以及它们的类型)。因此,让我们改进我们的命令来解释这一点:
echo express lodash | xargs -n 1 -I % sh -c 'npm i -S %; npm i -D @types/%'
这将为它们安装express
和lodash
,以及@types
。此命令还会将@types
包正确放置在devDependencies
中
我们可以进一步改进这一点,因为现在它将对每个包及其@类型执行单独的npm
运行。让我们看看我们还能做些什么:
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
希望这有帮助 任何类型的重复性工作都可以自动化。让自己成为一个脚本。哇,我甚至不知道是否已经有办法实现这一点,所以我不必花时间重新发明轮子。甚至值得投否决票吗?不能对否决票发表评论,但在
package.json
中声明依赖项没有帮助?一种方法是要求vscode像在JavaScript中一样支持TypeScript的类型获取。然后使其可配置为每个项目在本地安装打字,而不是在vscode缓存位置安装。:)任何类型的重复性工作都可以自动化。让自己成为一个脚本。哇,我甚至不知道是否已经有办法实现这一点,所以我不必花时间重新发明轮子。甚至值得投否决票吗?不能对否决票发表评论,但在package.json
中声明依赖项没有帮助?一种方法是要求vscode像在JavaScript中一样支持TypeScript的类型获取。然后使其可配置为每个项目在本地安装打字,而不是在vscode缓存位置安装。:)哦,哇,这很有趣,但似乎比“经典”方式更痛苦。我只是在寻找一个简单的方法,但可能没有。无论如何,谢谢你的帮助。哦,哇,这很有趣,但它似乎比“经典”方式更痛苦。我只是在寻找一个简单的方法,但可能没有。无论如何,谢谢你的帮助。