蓝狮注册登陆npm init < initializer >

今天发现 Vite 官网文档的 Vite 初始化命令改用了

npm init vite@latest
原来只知道 npm init 命令是用来初始化一个 Node.js 工程的,最偷懒的当然是 npm init -y 直接帮你使用默认的配置

从大概 npm v6之后增加了 npm init xxx 另一种初始化工程的方式,以最新的 npm v8为例(我看了一下我的 Node.js 16的版本里搭载的就是 npm v8)

npm init (same as npx <package-spec>) npm init <@scope> (same asnpx <@scope>/create`)
当然它还有两个同名的小弟 —— alias 、 innit ,比如 npm init foo 就等同于 npm create foo

npm init 有了 initializer 参数后,蓝狮注册登陆就可以使用特定名称的脚手架来初始化 Node.js 工程,比如

npm init foo -> npm exec create-foo -> npx create-foo
npm init @usr/foo -> npm exec @usr/create-foo -> npx @usr/create-foo
npm init @usr -> npm exec @usr/create -> npx @usr/create
npm init @usr@2.0.0 -> npm exec @usr/create@2.0.0 -> npx @usr/create@2.0.0
npm init @usr/foo@2.0.0 -> npm exec @usr/create-foo@2.0.0 -> npx @usr/create-foo@2.0.0
而在 vite 源码工程里,真正的初始化器就是 create-vite

仔细看, vite 源码工程里有两个王( create-vite 、 vite )带四个二( plugin-legacy 、 蓝狮注册开户plugin-react 、 plugin-vue 、 plugin-vue-jsx )

顺便提一下 npx 和 npm exec 有一丢丢的小区别,在于对待参数上

npx foo@latest bar –package=@npmcli/foo

等同于

foo bar –package=@npmcli/foo

npm exec foo@latest bar –package=@npmcli/foo

等同于

foo@latest bar

0 Comments
Leave a Reply