npm package.json

2021-10-29 10:52 更新

描述

此文檔是您需要了解的有關 package.json 文件中所需內容的全部信息。它必須是實際的 JSON,而不僅僅是 JavaScript 對象文字。 本文檔中描述的許多行為受 中描述的配置設置的影響config。

姓名 如果您計劃發(fā)布您的包,您的 package.json 中最重要的內容是名稱和版本字段,因為它們是必需的。名稱和版本共同構成一個標識符,假定該標識符是完全唯一的。對包的更改應該伴隨著對版本的更改。如果您不打算發(fā)布包,則名稱和版本字段是可選的。 名字就是你的東西叫什么。 一些規(guī)則: 名稱必須小于或等于 214 個字符。這包括范圍包的范圍。作用域包的名稱可以以點或下劃線開頭。這在沒有范圍的情況下是不允許的。新包的名稱中不得包含大寫字母。該名稱最終成為 URL 的一部分、命令行上的參數(shù)和文件夾名稱。因此,名稱不能包含任何非 URL 安全字符。一些技巧: 不要使用與核心節(jié)點模塊相同的名稱。不要在名稱中加入“js”或“node”。假設它是 js,因為您正在編寫 package.json 文件,并且您可以使用“engines”字段指定引擎。(見下文。)該名稱可能會作為參數(shù)傳遞給 require(),因此它應該是簡短的,但也應該具有合理的描述性。您可能需要檢查 npm 注冊表以查看是否已經存在使用該名稱的內容,以免過于依賴它。?https://www.npmjs.com/名稱可以選擇性地以范圍為前綴,例如`@myorg/mypackage.?請參閱?scope`了解更多詳情。

版本 如果您計劃發(fā)布您的包,您的 package.json 中最重要的內容是名稱和版本字段,因為它們是必需的。名稱和版本共同構成一個標識符,假定該標識符是完全唯一的。對包的更改應該伴隨著對版本的更改。如果您不打算發(fā)布包,則名稱和版本字段是可選的。 版本必須可由node-semver解析?,它作為依賴項與 npm 捆綁在一起。(npm install semver自己使用。)

描述 把描述放在里面。這是一個字符串。這有助于人們發(fā)現(xiàn)您的包裹,如 中所列npm search。

關鍵詞 把關鍵字放進去。它是一個字符串數(shù)組。這有助于人們發(fā)現(xiàn)您的包裹,因為它在 中列出npm search。

主頁 項目主頁的 url。 例子:

“主頁” :“https://github.com/owner/project#readme

錯誤 項目問題跟蹤器的 url 和/或應報告問題的電子郵件地址。這些對于遇到包裹問題的人很有幫助。 它應該是這樣的:

{ "url" : "https://github.com/owner/project/issues" ,
“電子郵件” :“project@hostname.com”
}

您可以指定一個或兩個值。如果您只想提供一個 url,您可以將“bugs”的值指定為一個簡單的字符串而不是一個對象。 如果提供了 url,它將被npm bugs命令使用。

執(zhí)照 你應該為你的包指定一個許可證,以便人們知道他們如何被允許使用它,以及你對它施加的任何限制。 如果您使用的是 BSD-2-Clause 或 MIT 等通用許可證,請為您使用的許可證添加當前的 SPDX 許可證標識符,如下所示:

{ “許可證” :“BSD-3-條款”
}

您可以查看SPDX 許可證 ID 的完整列表。理想情況下,您應該選擇?OSI批準的一種。 如果您的軟件包在多個通用許可下獲得許可,請使用SPDX 許可表達式語法版本 2.0 string,如下所示:

{ “許可證” :“(ISC 或 GPL-3.0)”
}

如果您使用的許可證尚未分配 SPDX 標識符,或者您使用的是自定義許可證,請使用如下字符串值:

{ "license" : "在 <文件名> 中查看許可證"
}

然后包含一個<filename>在包的頂層命名的文件。 一些舊包使用許可證對象或包含許可證對象數(shù)組的“許可證”屬性:

// 無效的元數(shù)據 { “許可證” :{
"類型" : "ISC" ,
"url" : "https://opensource.org/licenses/ISC"
} }

// 無效的元數(shù)據 { “許可證” :[
{ “類型” :“麻省理工學院” , "url" : "https://www.opensource.org/licenses/mit-license.php" } , { "type" : "Apache-2.0" , "url" : "https://opensource.org/licenses/apache2.0.php" } ] }

這些樣式現(xiàn)在已棄用。相反,使用 SPDX 表達式,如下所示:

{ “許可證” :“ISC” }

{ “許可證” :“(MIT 或 Apache-2.0)” }

最后,如果您不希望根據任何條款授予他人使用私有或未發(fā)布包的權利:

{ “許可證” :“未經許可” }

還要考慮設置"private": true以防止意外發(fā)布。

人員字段:作者、貢獻者 “作者”是一個人?!柏暙I者”是一群人?!皃erson”是一個帶有“name”字段和可選的“url”和“email”的對象,像這樣:

{ "name" : "Barney Rubble" ,
"email" : "b@rubble.com" ,
“網址” :“http://barnyrubble.tumblr.com/
}

或者,您可以將其全部縮短為一個字符串,然后 npm 將為您解析它:

{ “作者” :“巴尼瓦礫 <b@rubble.com> (http://barnyrubble.tumblr.com/)” }

email 和 url 都是可選的。 npm 還使用您的 npm 用戶信息設置頂級“維護者”字段。

資金 您可以指定一個包含 URL 的對象,該 URL 提供有關幫助資助包開發(fā)的方法的最新信息,或字符串 URL 或以下內容的數(shù)組:

{ “資金” :{ "類型" : "個人" ,
“網址” :“http://example.com/donate
} ,

“資金” :{ "type" : "patreon" ,
“網址” :“https://www.patreon.com/my-account
} ,

"funding" : "http://example.com/donate" ,

“資金” :[ { "類型" : "個人" ,
“網址” :“http://example.com/donate
} , "http://example.com/donateAlso" , { "type" : "patreon" ,
“網址” :“https://www.patreon.com/my-account
} ] }

用戶可以使用npm fund子命令列出funding其項目的所有依賴項的URL,直接和間接。提供項目名稱時還提供訪問每個資助網址的快捷方式,例如:(?npm fund <projectname>當有多個網址時,將訪問第一個)

檔案 可選files字段是一個文件模式數(shù)組,它描述了當您的包作為依賴項安裝時要包含的條目。文件模式遵循與 類似的語法.gitignore,但相反:包含文件、目錄或 glob 模式(*,**/*等)將使該文件在打包時包含在 tarball 中。省略該字段將使其默認為["*"],這意味著它將包含所有文件。 一些特殊的文件和目錄也會被包含或排除,無論它們是否存在于files數(shù)組中(見下文)。 您還可以.npmignore在包的根目錄或子目錄中提供一個文件,以防止文件被包含在內。在包的根目錄中,它不會覆蓋“文件”字段,但在子目錄中會覆蓋。該.npmignore文件就像一個.gitignore.?如果有一個.gitignore文件并且.npmignore丟失了,.gitignore則將使用 的內容。 文件包含了“的package.json#文件”欄中無法通過排除.npmignore.gitignore。 無論設置如何,始終包含某些文件: package.json``README``LICENSE?/?LICENCE“主要”字段中的文件README&LICENSE可以有任何大小寫和擴展名。 相反,一些文件總是被忽略: .git``CVS``.svn``.hg``.lock-wscript``.wafpickle-N``.*.swp``.DS_Store``._*``npm-debug.log``.npmrc``node_modules``config.gypi``*.orig``package-lock.json(?npm-shrinkwrap.json如果您希望發(fā)布,請使用)

主要的 main 字段是一個模塊 ID,它是程序的主要入口點。也就是說,如果您的包名為foo,并且用戶安裝了它,然后安裝了require("foo"),那么您的主模塊的導出對象將被返回。 這應該是相對于包文件夾根目錄的模塊。 對于大多數(shù)模塊來說,擁有一個主腳本是最有意義的,通常沒有太多其他的東西。 如果main未設置,則默認index.js位于包根文件夾中。

瀏覽器 如果您的模塊打算在客戶端使用,則應使用瀏覽器字段而不是主字段。這有助于提示用戶它可能依賴于 Node.js 模塊中不可用的原語。(例如?window

垃圾桶 很多包都有一個或多個他們想要安裝到 PATH 中的可執(zhí)行文件。npm 使這變得非常簡單(實際上,它使用此功能來安裝“npm”可執(zhí)行文件。) 要使用它,請bin在 package.json 中提供一個字段,它是命令名到本地文件名的映射。當這個包被全局安裝時,該文件將被鏈接到全局 bin 所在的位置,因此它可以按名稱運行。當此包作為另一個包中的依賴項安裝時,該文件將鏈接到該包可直接通過npm exec或通過其他腳本中的名稱通過npm run-script. 例如,myapp 可能有這個:

{ “斌” :{ “我的應用程序” :“./cli.js” } }

因此,當您安裝 myapp 時,它會創(chuàng)建一個從cli.js腳本到/usr/local/bin/myapp. 如果您有一個可執(zhí)行文件,并且它的名稱應該是包的名稱,那么您可以將其作為字符串提供。例如:

{ "name" : "我的程序" , “版本” :“1.2.5” , "bin" : "./path/to/program" }

將與此相同:

{ "name" : "我的程序" , “版本” :“1.2.5” , “斌” :{ “我的程序” :“./path/to/program” } }

請確保中引用的文件以bin開頭?#!/usr/bin/env node,否則腳本將在沒有節(jié)點可執(zhí)行文件的情況下啟動! 請注意,您還可以使用directory.bin設置可執(zhí)行文件。 有關可執(zhí)行文件的更多信息,請參見文件夾。

男人 指定單個文件或文件名數(shù)組以供man程序查找。 如果只提供了一個文件,那么它會被安裝為來自 的結果man <pkgname>,而不管其實際文件名如何。例如:

{ "name" : "foo" , “版本” :“1.2.3” , "description" : "用于 fooing foos 的打包 foo fooer" , "main" : "foo.js" , “人” :“./ man / doc.1” }

將鏈接./man/doc.1文件,使其成為目標man foo 如果文件名不以包名開頭,則它是前綴。所以這:

{ "name" : "foo" , “版本” :“1.2.3” , "description" : "用于 fooing foos 的打包 foo fooer" , "main" : "foo.js" , “男人” :[ "./man/foo.1" , “./man/bar.1” ] }

將創(chuàng)建文件來做man fooman foo-bar。 man 文件必須以數(shù)字結尾,.gz如果它們被壓縮,則可以選擇后綴。該數(shù)字指示文件安裝到哪個 man 部分。

{ "name" : "foo" , “版本” :“1.2.3” , "description" : "用于 fooing foos 的打包 foo fooer" , "main" : "foo.js" , “男人” :[ "./man/foo.1" , “./man/foo.2” ] }

將創(chuàng)建條目man fooman 2 foo

目錄 CommonJS?Packages規(guī)范詳細說明了一些可以使用directories對象指示包結構的方法。如果您查看npm 的 package.json,您會看到它包含 doc、lib 和 man 目錄。 將來,這些信息可能會以其他創(chuàng)造性的方式使用。

目錄.bin 如果在 中指定bin目錄directories.bin,則將添加該文件夾中的所有文件。 由于bin指令的工作方式,同時指定bin路徑和設置directories.bin是錯誤的。如果要指定單個文件,請使用bin,對于現(xiàn)有bin?目錄中的所有文件,請使用directories.bin。

目錄.man 一個充滿手冊頁的文件夾。Sugar 通過遍歷文件夾來生成“man”數(shù)組。

存儲庫 指定代碼所在的位置。這對想要貢獻的人很有幫助。如果 git repo 在 GitHub 上,那么該npm docs?命令將能夠找到您。 像這樣做:

{ “存儲庫” :{ "類型" : "git" , "url" : "https://github.com/npm/cli.git" } }

URL 應該是一個公開可用的(可能是只讀的)url,可以直接傳遞給 VCS 程序,無需任何修改。它不應該是您放入瀏覽器的 html 項目頁面的 url。是給電腦用的。 對于 GitHub、GitHub gist、Bitbucket 或 GitLab 存儲庫,您可以使用與 相同的快捷語法npm install

{ "repository" : "npm/npm" ,

"repository" : "github:user/repo" ,

“存儲庫” :“要點:11081aaa281” ,

"repository" : "bitbucket:user/repo" ,

“存儲庫” :“gitlab:用戶/倉庫” }

如果package.json您的包的 不在根目錄中(例如,如果它是 monorepo 的一部分),您可以指定它所在的目錄:

{ “存儲庫” :{ "類型" : "git" , "url" : "https://github.com/facebook/react.git" , “目錄” :“包/react-dom” } }

腳本 “scripts”屬性是一個字典,其中包含在包生命周期中的不同時間運行的腳本命令。鍵是生命周期事件,值是在該點運行的命令。 請參閱scripts以了解有關編寫包腳本的更多信息。

配置 “config”對象可用于設置在升級過程中持續(xù)存在的包腳本中使用的配置參數(shù)。例如,如果一個包具有以下內容:

{ "name" : "foo" , “配置” :{ “端口” :“8080” } }

它也可以有一個引用npm_package_config_port環(huán)境變量的“啟動”命令?。

依賴 依賴項在一個簡單的對象中指定,該對象將包名稱映射到版本范圍。版本范圍是一個字符串,它具有一個或多個以空格分隔的描述符。依賴項也可以用 tarball 或 git URL 來標識。 請不要在您的dependencies對象中放置測試工具或轉譯器或其他“開發(fā)”時間工具。?見devDependencies,下面。 有關指定版本范圍的更多詳細信息,請參閱semver。 version必須version完全匹配>version?必須大于?version``>=version?等等<version``<=version``~version“大約相當于版本”見?semver^version“兼容版本”見semver1.2.x?1.2.0、1.2.1 等,但不是 1.3.0http://...?請參閱下面的“作為依賴項的 URL”*?匹配任何版本""?(只是一個空字符串)與?*``version1 - version2一樣>=version1 <=version2。range1 || range2?如果滿足 range1 或 range2,則通過。git...?請參閱下面的“作為依賴項的 Git URL”user/repo?請參閱下面的“GitHub URL”tag標記并發(fā)布為tag?See 的特定版本npm dist-tag``path/path/path請參閱下面的本地路徑例如,這些都是有效的:

{ “依賴關系” :{ "foo" : "1.0.0 - 2.9999.9999" , "bar" : ">=1.0.2 <2.1.2" , "baz" : ">1.0.2 <=2.3.4" , "boo" : "2.0.1" , "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0" , "asd" : "http://asdf.com/asdf.tar.gz" , "til" : "~1.2" , "小精靈" : "~1.2.3" , "二" : "2.x" , "thr" : "3.3.x" , "lat" : "最新的" , "dyl" : "文件:../dyl" } }

URL 作為依賴項 您可以指定一個 tarball URL 來代替版本范圍。 這個 tarball 將在安裝時下載并安裝到本地包中。

Git URL 作為依賴項 Git 網址的格式為:

<協(xié)議> :// [ <用戶> [ :<密碼> ] @ ] <主機名> [ :<端口> ] [ :] [ / ] <路徑> [ #<commit-ish> | #semver:<semver>]

<protocol>是以下之一git,git+ssh,git+http,git+https,或?git+file。 如果#<commit-ish>提供,它將用于準確克隆該提交。如果 commit-ish 具有格式#semver:<semver>,<semver>可以是任何有效的 semver 范圍或確切版本,并且 npm 將在遠程存儲庫中查找與該范圍匹配的任何標簽或引用,就像查找注冊表依賴項一樣。如果兩者都未指定#<commit-ish>或未#semver:<semver>指定,則master使用。 例子:

git+ssh://git@github.com:npm/cli.git #v1.0.27 git+ssh://git@github.com:npm/cli #semver:^5.0 git+https://isaacs@github.com/npm/cli.git git://github.com/npm/cli.git #v1.0.27

GitHub 網址 從 1.1.65 版本開始,您可以將 GitHub 網址稱為“foo”:“user/foo-project”。就像 git URL 一樣,commit-ish可以包含后綴。例如:

{ "name" : "foo" , “版本” :“0.0.0” , “依賴關系” :{ "express" : "expressjs/express" , "mocha" : "mochajs/mocha#4727d357ea" , “模塊” :“用戶/repo#feature\/branch” } }

本地路徑 從版本 2.0.0 開始,您可以提供包含包的本地目錄的路徑??梢允褂?code>npm install -S或保存本地路徑npm install --save,使用以下任何形式:

.. /foo/bar ~/foo/bar ./foo/bar /foo/bar

在這種情況下,它們將被標準化為相對路徑并添加到您的?package.json.?例如:

{ "name" : "baz" , “依賴關系” :{ “bar” :“文件:../foo/bar” } }

此功能有助于本地離線開發(fā)和創(chuàng)建需要在不想訪問外部服務器的地方安裝 npm 的測試,但不應在將包發(fā)布到公共注冊表時使用。

開發(fā)依賴 如果有人計劃在他們的程序中下載和使用您的模塊,那么他們可能不想或不需要下載和構建您使用的外部測試或文檔框架。 在這種情況下,最好將這些附加項目映射到一個?devDependencies對象中。 這些東西將在執(zhí)行時npm linknpm install從包的根目錄安裝,并且可以像任何其他 npm 配置參數(shù)一樣進行管理。有關config該主題的更多信息,請參閱。 對于非特定于平臺的構建步驟,例如將 CoffeeScript 或其他語言編譯為 JavaScript,請使用prepare腳本執(zhí)行此操作,并使所需的包成為 devDependency。 例如:

{ "name" : "ethopia-waza" , “描述” :“令人愉悅的果味咖啡品種” , “版本” :“1.2.3” , “開發(fā)依賴” :{ “咖啡腳本” :“~1.6.3” } , “腳本” :{ “準備” :“咖啡-o lib/-c src/waza.coffee” } , "main" : "lib/waza.js" }

prepare腳本將在發(fā)布之前運行,以便用戶無需自行編譯即可使用該功能。在開發(fā)模式下(即本地運行npm install),它也會運行這個腳本,以便您可以輕松測試它。

對等依賴 在某些情況下,您希望表達您的包與主機工具或庫的兼容性,而不必執(zhí)行require此主機的操作。這通常稱為插件。值得注意的是,您的模塊可能會公開主機文檔所預期和指定的特定接口。 例如:

{ "name" : "拿鐵茶" , “版本” :“1.3.5” , “peerDependencies” :{ “茶” :“2.x” } }

這確保您的軟件包tea-latte只能與主機軟件包的第二個主要版本一起安裝tea。npm install tea-latte可能會產生以下依賴圖:

├── 拿鐵茶@1.3.5 └── 茶@2.2.0

在 npm 版本 3 到 6 中,peerDependencies不會自動安裝,如果在樹中發(fā)現(xiàn)對等依賴項的無效版本,則會發(fā)出警告。由于NPM V7的,peerDependencies被?默認安裝。 如果無法正確解析樹,嘗試安裝具有沖突要求的另一個插件可能會導致錯誤。因此,請確保您的插件要求盡可能廣泛,而不是將其鎖定為特定的補丁版本。 假設主機符合semver,只有主機包的主要版本中的更改才會破壞您的插件。因此,如果您使用過主機包的每個 1.x 版本,請使用"^1.0""1.x"?來表達這一點。如果您依賴 1.5.2 中引入的功能,請使用?"^1.5.2".

對等依賴元 當用戶安裝您的軟件包時,如果 中指定的軟件包peerDependencies尚未安裝,npm 將發(fā)出警告。該?peerDependenciesMeta字段用于為 npm 提供有關如何使用對等依賴項的更多信息。具體來說,它允許對等依賴項標記為可選。 例如:

{ "name" : "拿鐵茶" , “版本” :“1.3.5” , “peerDependencies” :{ "茶" : "2.x" , “豆?jié){” :“1.2” } , “peerDependenciesMeta” :{ “豆?jié){” :{ “可選” :真 } } }

將對等依賴項標記為可選可確保soy-milk在主機上未安裝軟件包時npm 不會發(fā)出警告。這允許您集成各種主機包并與之交互,而無需安裝所有主機包。

捆綁依賴 這定義了在發(fā)布包時將捆綁的包名稱數(shù)組。 如果您需要在本地保留 npm 包或通過單個文件下載使它們可用,您可以通過在bundledDependencies?數(shù)組中指定包名稱并執(zhí)行npm pack. 例如: 如果我們像這樣定義 package.json:

{ "name" : "awesome-web-framework" , “版本” :“1.0.0” , “捆綁依賴” :[ “渲染” , “超級流” ] }

我們可以awesome-web-framework-1.0.0.tgz通過運行獲取文件npm pack。此文件包含的依賴關系renderized,并super-streams可以通過執(zhí)行安裝在一個新的項目npm install awesome-web-framework-1.0.0.tgz。請注意,包名稱不包含任何版本,因為該信息在dependencies. 如果這是拼寫"bundleDependencies",那么這也很榮幸。

可選依賴項 如果可以使用依賴項,但如果找不到或安裝失敗,您希望 npm 繼續(xù),那么您可以將其放入?optionalDependencies對象中。這是包名稱到版本或 url 的映射,就像dependencies對象一樣。不同之處在于構建失敗不會導致安裝失敗。運行npm install --no-optional將阻止安裝這些依賴項。 處理缺少依賴項仍然是您的程序的責任。例如,這樣的事情:

試試{ var foo =要求('foo' ) var fooVersion = require ( 'foo/package.json' ) 。版本 }趕上(呃){
foo =空 } 如果( notGoodFooVersion ( fooVersion ) ) {
foo =空 }

// .. 然后在你的程序中..

如果(富){
富。doFooThings ( ) }

中的條目optionalDependencies將覆蓋 中的同名條目?dependencies,因此通常最好只放在一個地方。

引擎 您可以指定您的東西適用的節(jié)點版本:

{ “引擎” :{ “節(jié)點” :“>=0.10.3 <15” } }

而且,與依賴項一樣,如果您不指定版本(或者如果您指定“?*?”作為版本),那么任何版本的節(jié)點都可以。 您還可以使用“引擎”字段來指定哪些版本的 npm 能夠正確安裝您的程序。例如:

{ “引擎” :{ “npm” :“~1.0.20” } }

除非用戶設置了engine-strictconfig 標志,否則這個字段只是建議性的,只有當你的包作為依賴項安裝時才會產生警告。

操作系統(tǒng) 您可以指定您的模塊將在哪些操作系統(tǒng)上運行:

{ “操作系統(tǒng)” :[ “達爾文” , “Linux” ] }

您還可以阻止而不是允許操作系統(tǒng),只需在被阻止的操作系統(tǒng)前面加上一個“!”:

{ “操作系統(tǒng)” :[ “!win32” ] }

主機操作系統(tǒng)由?process.platform 允許阻止和允許一個項目,盡管沒有任何充分的理由這樣做。

中央處理器 如果您的代碼僅在某些 CPU 架構上運行,您可以指定哪些架構。

{ “CPU” :[ "x64" , “ia32” ] }

與該os選項一樣,您還可以阻止架構:

{ “CPU” :[ "!arm" , “!mips” ] }

主機架構由?process.arch

私人的 如果你"private": true在 package.json 中設置,那么 npm 將拒絕發(fā)布它。 這是一種防止意外發(fā)布私有存儲庫的方法。如果您想確保給定的包只發(fā)布到特定的注冊表(例如,內部注冊表),請使用publishConfig下面描述的?字典registry?在發(fā)布時覆蓋配置參數(shù)。

發(fā)布配置 這是一組將在發(fā)布時使用的配置值。如果您想設置標記、注冊表或訪問權限,這將特別方便,這樣您就可以確保給定的包沒有被標記為“最新”、未發(fā)布到全局公共注冊表或默認情況下范圍模塊是私有的。 查看config可覆蓋的配置選項列表。

工作空間 可選workspaces字段是一個文件模式數(shù)組,它描述了本地文件系統(tǒng)內的位置,安裝客戶端應該查找這些位置以找到需要符號鏈接到頂級文件夾的每個工作區(qū)node_modules。 它可以描述要用作工作區(qū)的文件夾的直接路徑,也可以定義將解析為這些相同文件夾的 glob。 在以下示例中,./packages只要文件夾中包含有效package.json文件,位于文件夾內的所有文件夾?都將被視為工作區(qū)?:

{ "name" : "工作區(qū)示例" , “工作區(qū)” :[ “./包/*” ] }

有關workspaces更多示例,請參見。

默認值 npm 將根據包內容默認一些值。 "scripts": {"start": "node server.js"} 如果server.js包的根目錄中有一個文件,那么 npm 會將start命令默認為node server.js. "scripts":{"install": "node-gyp rebuild"} 如果binding.gyp你的包根目錄中有一個文件并且你沒有定義installpreinstall腳本,npm 將默認?install使用 node-gyp 編譯命令。 "contributors": [...] 如果AUTHORS包的根目錄中有一個文件,npm 會將每一行視為一種Name <email> (url)格式,其中 email 和 url 是可選的。以 a#或開頭的空白行將被忽略。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號