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 <package-spec> (same as `npx <package-spec>)
npm init <@scope> (same as `npx <@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原文 https://zhuanlan.zhihu.com/p/550845429
本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!