npm init(yarn create) 后发生了什么
在 Vue.js 最新的文档中,通过脚手架 Vite 初始化项目,给出了一个这样的命令:
1 | npm init vite hello-vue3 -- --template vue |
之前的一些 CLI 的使用方式是先去全局安装一个 npm 包,然后该 npm 包会被全局注册,使用全局指令去完成一些动作。
直接使用 npm init
或者 yarn create
发生了什么?
一、 npm init
在最新的 npm 6.x 版本中,有着如下的行为:
1 |
|
即如果 npm init
后面如果跟随参数,会按照上述规则,和使用 npx
指令的行为一致,如果已经安装了该包,直接执行对应的 create-* xxx
命令。否则先拉取安装,再执行。
如果没有跟随参数,就是我们经常使用的问询式方式,生成一个 package.json
文件。
二、yarn create
在 yarn 1.x 版本中是这样的行为:
1 | yarn create <starter-kit-package> [<args>] |
yarn 有专门的 create 命令 yarn create
,行为和 npm init
一致,即会自动添加 create 前缀,拉取并安装该包,执行后续命令。
eg:
1 | yarn create react-app my-app |
yarn 额外提供了 init 命令 yarn init
去问询式生成 package.json
文件。
参考链接
npm init(yarn create) 后发生了什么