W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
注冊表差異命令
npm diff [...<paths>]
npm diff --diff=<pkg-name> [...<paths>]
npm diff --diff=<version-a> [--diff=<version-b>] [...<paths>]
npm diff --diff=<spec-a> [--diff=<spec-b>] [...<paths>]
npm diff [--diff-ignore-all-space] [--diff-name-only] [...<paths>]
與其 git diff 對應(yīng)的命令相似,此命令將為發(fā)布到 npm 注冊表的包打印文件的差異補丁。
npm diff --diff=<spec-a> --diff=<spec-b>
使用它們的注冊表說明符比較兩個包的版本,例如:npm dff --dff=pkg@1.0.0 --diff=pkg@2.0.0。
也可以在任何包的 fork 之間進行比較,例如:npm diff --diff=pkg@1.0.0 --diff=pkg-fork@1.0.0
。
可以使用任何有效的規(guī)范,頁次也可以比較目錄或 git 存儲庫,例如npm diff --diff=pkg@latest --diff=./packages/pkg
這是一個比較abbrev
從注冊表命名的包的兩個不同版本的示例?:
npm diff --diff = abbrev@1.1.0 --diff = abbrev@1.1.1
成功后,輸出如下所示:
diff --git a/package.json b/package.json
index v1.1.0..v1.1.1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "abbrev",
- "version": "1.1.0",
+ "version": "1.1.1",
"description": "Like ruby's abbrev module, but in js",
"author": "Isaac Z. Schlueter <i@izs.me>",
"main": "abbrev.js",
鑒于 npm 規(guī)范的靈活性,您還可以像使用時一樣定位本地目錄或 git repos?npm install
:
npm diff --diff = https://github.com/npm/libnpmdiff --diff = ./local-path
在上面的示例中,我們可以將從 git 存儲庫安裝的包中github.com/npm/libnpmdiff
的內(nèi)容與./local-path
包含有效包的內(nèi)容進行比較?,例如原始包的修改副本。
npm diff
?(在包目錄中,沒有參數(shù)):
如果包發(fā)布到注冊表,npm diff
將獲取標(biāo)記為的 tarball 版本latest
(可以使用tag
選項配置此值?)并繼續(xù)比較該 tarball 中存在的文件內(nèi)容與本地文件系統(tǒng)中的當(dāng)前文件。
此工作流程為包作者提供了一種方便的方法,可以查看與該包的最新發(fā)布版本相比,哪些包跟蹤文件發(fā)生了更改。npm diff --diff=<pkg-name>
?(在包目錄中):
當(dāng)使用單個包名稱(沒有版本或標(biāo)簽說明符)作為參數(shù)時,npm diff
將以npm-outdated
與注冊表類似的方式工作,?并讓注冊表找出當(dāng)前發(fā)布的包名稱版本<pkg-name>
?將滿足其依賴聲明的 semver-range。一旦知道該特定版本,npm diff
將打印比較<pkg-name>
本地文件系統(tǒng)中找到的當(dāng)前版本與注冊表返回的特定版本的差異補丁。
給定一個名為abbrev
當(dāng)前安裝的包:
npm diff --diff=abbrev
這將從注冊表請求其最新版本,并且如果版本號不同,將打印比較當(dāng)前安裝的版本與此較新版本的差異輸出。
npm diff --diff=<spec-a>
?(在包目錄中):
與僅使用單個包名稱類似,如果您希望將已安裝包的本地版本與<spec-a>
.
一個例子:假設(shè)pkg@1.0.0
安裝在當(dāng)前node_modules
?文件夾中,運行:
npm diff --diff = pkg@2.0.0
它將有效地成為?npm diff --diff=pkg@1.0.0 --diff=pkg@2.0.0
.
npm diff --diff=<semver-a> [--diff=<semver-b>]
?(在包目錄中):
使用npm diff
連同semver,有效的版本號是一個速記比較不同版本的當(dāng)前包的。
它需要從包目錄運行,這樣對于名為pkg
running的包?npm diff --diff=1.0.0 --diff=1.0.1
與 running 相同?npm diff --diff=pkg@1.0.0 --diff=pkg@1.0.1
。
如果只提供了一個參數(shù)<version-a>
,則將當(dāng)前本地文件系統(tǒng)與該版本進行比較。
這是比較當(dāng)前項目目錄的兩個特定版本(發(fā)布到配置的注冊表)的示例:
npm diff --diff = 1.0.0 --diff = 1.1.0
請注意,標(biāo)簽名稱不是有效的--diff
參數(shù)值,如果你希望與已發(fā)布的標(biāo)簽進行比較,則必須使用pkg@tagname
語法。
還可以使用文件名或 globs 模式匹配來指定位置參數(shù),以將 diff 補丁的結(jié)果限制為給定包的文件子集,例如:
npm diff --diff = pkg@2 ./lib/ CHANGELOG.md
在上面的例子中,diff 輸出只會打印文件夾內(nèi)文件的內(nèi)容和文件中./lib/
更改的代碼行?CHANGELOG.md
。
String
(可多次設(shè)置)
在npm diff
中定義要進行比較的參數(shù)。
false
Boolean
使用npm diff
時僅打印文件名。
3
Number
要在npm diff
中打印的上下文行數(shù)。
false
Boolean
比較npm diff
中的行時忽略空格。
false
Boolean
不要在npm diff
輸出中顯示任何源或目標(biāo)前綴。
注意:這會導(dǎo)致npm diff
忽略--diff-src-prefix
和?--diff-dst-prefix
配置。
a/
String
要在npm diff
輸出中使用的源前綴。
b/
String
要在npm diff
輸出中使用的目標(biāo)前綴。
false
Boolean
在npm diff
中將所有文件視為文本。
false
Boolean
在“全局”模式下運行,以便將包安裝到prefix
?文件夾而不是當(dāng)前工作目錄中。有關(guān)行為差異的更多信息,請參閱?文件夾。
{prefix}/lib/node_modules
文件夾中,而不是當(dāng)前工作目錄中。{prefix}/bin
{prefix}/share/man
默認(rèn)值:new
類型:String
如果你要求 npm 安裝一個包并且沒有告訴它一個特定的版本,那么它會安裝指定的標(biāo)簽。
npm tag
?如果未給出顯式標(biāo)簽,則也是添加到命令指定的 package@version 的標(biāo)簽。
當(dāng)被npm diff
命令使用時,這是用于獲取默認(rèn)情況下將與本地文件進行比較的 tarball 的標(biāo)簽。
String
(可多次設(shè)置)允許在當(dāng)前項目的已配置工作區(qū)的上下文中運行命令,同時通過僅運行此配置選項定義的工作區(qū)進行過濾。
workspace
配置的有效值為:
為該npm init
命令設(shè)置時,可以將其設(shè)置為尚不存在的工作區(qū)的文件夾,以創(chuàng)建該文件夾并將其設(shè)置為項目中的全新工作區(qū)。
此值不會導(dǎo)出到子進程的環(huán)境中。
false
Boolean
啟用在所有已配置工作區(qū)的上下文中運行命令。
此值不會導(dǎo)出到子進程的環(huán)境中。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: