npm 初始化 init

2021-10-29 10:49 更新

創(chuàng)建 package.json 的文件

概要

npm init [--force|-f|--yes|-y|--scope]
npm init <@scope> (same as `npx <@scope>/create`)
npm init [<@scope>/]<name> (same as `npx [<@scope>/]create-<name>`)

描述

npm init <initializer>?可用于設(shè)置新的或現(xiàn)有的 npm 包。

本例中的initializer是一個名為create-<initializer>的 npm 包,它將由npm exec安裝,然后執(zhí)行其主bin —— 大概是創(chuàng)建或更新package.json并運行任何其他與初始化相關(guān)的操作。

初始化命令轉(zhuǎn)化為對應(yīng)的npm exec操作如下:

  • npm init foo?->?npm exec create-foo
  • npm init @usr/foo?->?npm exec @usr/create-foo
  • npm init @usr?->?npm exec @usr/create

如果省略初始值設(shè)定項(僅通過調(diào)用npm init),初始值將回退到傳統(tǒng)的初始行為。它會問你一堆問題,然后為你寫一個package.json。它將嘗試根據(jù)現(xiàn)有字段、依賴項和所選選項做出合理的猜測。它是嚴格相加的,因此它將保留已設(shè)置的任何字段和值。你也可以使用?-y/--yes完全跳過問卷。如果省略了--scope,它將創(chuàng)建一個作用域包。

轉(zhuǎn)發(fā)附加選項

任何其他選項將直接傳遞給命令,因此npm init foo -- --hello將映射到 npm exec --create-foo --hello.

為了更好地說明選項將直接傳遞給命令,這里有一個更先進的示例,顯示了傳遞給npm cli和 create 包的選項,以下兩個命令是等效的:

npm init foo -y --registry=<url> -- --hello -a
npm exec -y --registry=<url> -- create-foo --hello -a

例子

使用以下命令創(chuàng)建一個新的基于 React 的項目create-react-app

$ npm init react-app ./my-react-app

esm使用create-esm以下命令創(chuàng)建一個新的兼容包:

$ mkdir my-esm-lib && cd my-esm-lib
$ npm init esm --yes

使用傳統(tǒng)的初始命令生成一個普通的舊的package.json

$ mkdir my-npm-pkg && cd my-npm-pkg
$ git init
$ npm init

生成而不問任何問題:

$ npm init -y

工作區(qū)支持

可以使用workspaceconfig 選項在項目中創(chuàng)建新工作區(qū)?。使用npm init -w <dir>cli 時,將創(chuàng)建預(yù)期的文件夾和樣板,同時還添加對項目package.json?"workspaces": []屬性的引用,以確保正確設(shè)置新生成的工作區(qū)。 給定一個沒有工作區(qū)的項目,例如:

.
+-- package.json

您可以使用舊的 init 生成一個新的工作區(qū):

$ npm init -w packages/a

這將生成一個新文件夾和package.json文件,同時還會更新您的頂層package.json以添加對這個新工作區(qū)的引用:

.
+-- package.json
`-- packages
   `--a
       `--package.json

工作空間 init 也支持該npm init <initializer> -w <dir>?語法,遵循本頁初始描述部分中先前解釋的相同規(guī)則集?。與之前使用 創(chuàng)建基于 React 的新項目的示例類似create-react-app,以下語法將確保將新的 React?應(yīng)用程序創(chuàng)建為項目中的嵌套工作區(qū),并配置你package.json以識別它:

npm init -w packages/my-react-app react-app 。

這將確保按預(yù)期生成你的反應(yīng)應(yīng)用程序,要記住的一個重要考慮因素npm exec是它將在該工作區(qū)新創(chuàng)建的文件夾的上下文中運行,這就是為什么在本示例中初始化程序使用初始值設(shè)定項名稱后跟一個點來表示該上下文中的當(dāng)前目錄,例如react-app .::

.
+-- package.json
`-- packages
   +-- a
   | `--package.json
   `-- my-react-app
       +-- README
       +-- package.json
       `——……

配置

yes

  • 默認值:null
  • 類型:nullBoolean

自動對 npm 可能在命令行上打印的任何提示回答yes

force

  • 默認值:false
  • 類型:Boolean

刪除各種針對不幸副作用、常見錯誤、不必要的性能下降和惡意輸入的保護措施。

  • 允許在全局安裝中破壞非 npm 文件。
  • 允許npm version命令在不干凈的 git 存儲庫上工作。
  • 允許刪除緩存文件夾npm cache clean
  • 允許安裝engines聲明要求不同版本的 npm 的包。
  • 允許安裝engines聲明要求不同版本 的包node,即使--engine-strict已啟用。
  • 允許npm audit fix在你聲明的依賴范圍之外安裝模塊(包括 SemVer 主要更改)。
  • 允許取消發(fā)布已發(fā)布包的所有版本。
  • 允許在根項目中安裝沖突的 peerDependencies。
  • 在npm初始化期間隱式設(shè)置--yes。
  • 允許刪除?npm pkg 中的現(xiàn)有值。

如果你還不清楚自己要做什么,強烈建議你不要使用此選項!

workspace 工作區(qū)

  • 默認:
  • 類型:String(可多次設(shè)置)

允許在當(dāng)前項目的已配置工作區(qū)的上下文中運行命令,同時通過僅運行此配置選項定義的工作區(qū)進行過濾。 workspace配置的有效值為:

  • 工作區(qū)名稱
  • 工作區(qū)目錄的路徑
  • 父工作區(qū)目錄的路徑(將導(dǎo)致選擇所有嵌套工作區(qū))

npm init命令設(shè)置時,可以將其設(shè)置為尚不存在的工作區(qū)的文件夾,以創(chuàng)建該文件夾并將其設(shè)置為項目中的全新工作區(qū)。

此值不會導(dǎo)出到子進程的環(huán)境中。

workspaces 工作區(qū)

  • 默認值:false
  • 類型:Boolean

啟用在所有已配置工作區(qū)的上下文中運行命令。

此值不會導(dǎo)出到子進程的環(huán)境中。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號