关于npm init 的特殊用法

670 阅读1分钟

1、背景

最近在试用vitejs,其中他的安装命令是:

npm init @vitejs/app

之前没有见过这种用法,所以没理解到底做了什么

2、用法详解

看了文档:小tips:你不知道的 npm init,明白了其具体含义。

其详细用法是:

npm init <initializer>可用于设置新的或现有的 npm 软件包。

initializer 在这种情况下将使用一个名为的create-<initializer> npm 软件包,先安装,然后执行它

将 init 命令转换为相应的 npx 操作,如下所示:

npm init foo - > npx create-foo 
npm init @usr/foo - > npx @usr/create-foo 
npm init @usr - > npx @usr/create 

任何其他选项将直接传递到命令,因此 npm init foo --hello 将映射到 npx create-foo --hello。

如果省略了初始化程序(仅通过调用 npm init),则 init 将退回到传统的 init 行为。

那么NPX具体是怎么样的用法呢?

npx create-foo为例 npx 将create-foo下载到一个临时目录,使用以后会删除掉,这样就减少了create-foo的全局安装。

3、含义解释

通过上面的知识可知

npm init @vitejs/app

same as:

npx @vitejs/create-app

这个时候NPX会把@vitejs/create-app安装到临时目录,然后执行 其node_modules/.bin下面的命令,然后再删除掉@vitejs/create-app