npm init

摘要:原来只知道 npm init 命令是用来初始化一个 Node.js 工程的,最偷懒的当然是 npm init -y 直接帮你使用默认的配置,从大概 npm v6之后增加了 npm init xxx 另一种初始化工程的方式

今天发现 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

本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_11985