簡體   English   中英

在本地安裝時,如何讓我的NPM包顯示“npm WARN prefer global”

[英]How do I make my NPM package show “npm WARN prefer global” when installing locally

難以google the subj - 太多的用戶問題,我的是關於包開發。 我希望我的軟件包的用戶在全局安裝時看到“npm WARN prefer global”

我以為npm install yo曾經有過這樣的警告,但現在卻沒有。 至少我看不到它。

我的環境:

  › npm --version
1.4.10
  › node -v
v0.10.28

Ben Fortune的回答指定了npm包作者如何將包指定為 "preferGlobal": true 全局安裝 (通過添加鍵值對"preferGlobal": truepackage.json文件)。

可悲的是,正如OP自己在評論中指出的那樣,這還不足以始終觸發用戶在本地 安裝此類軟件包的警告

從npm 2.3.0開始,使用npm install <pkgName> (即不使用-g )在本地安裝全局安裝首選軟件包時的行為如下:

警告 - npm WARN prefer global <pkgName>@<ver> should be installed with -g - 以下情況下被觸發

  • 當前目錄中有一個有效的package.json文件
  • 它包含一個dependencies和/或optionalDependencies鍵,其值是一個對象(無論是否為空) - 除非手頭的包恰好包含在其中。

實際上,這意味着在以下場景中運行npm install <pkgName> (即沒有-g )時您將看不到警告

  • 在一個不是npm包項目的目錄中(沒有package.json文件)。
  • 在npm package-project目錄中,根本沒有運行時依賴項(沒有dependencies和/或optionalDependencies鍵 - 相反,鍵devDependencies和/或peerDependencies本身不會觸發警告)。
  • 在npm package-project目錄中碰巧已經將pkgName安裝為(通過定義本地) 運行時依賴項(在key dependenciesoptionalDependencies )。

請注意,即使--loglevel silly也不會改變此行為,因此目前無法強制無條件顯示警告

將包指定為全局確實具有一個無條件的副作用,但是:在npm注冊表( http://npmjs.com )中,右側邊欄中顯示的安裝命令是npm install <pkgName> -g ; 即,它確實包括-g
[ 更新:此功能已經破了一段時間,截至2015年9月14日仍然存在 - 請參閱 https://github.com/npm/newww/issues/1017 ]

你需要指定

"preferGlobal": true

在你的package.json

文檔

preferGlobal現已棄用

此選項用於觸發npm警告,但不會再發出警告。 純粹出於信息目的。 現在建議您盡可能將任何二進制文件安裝為本地devDependencies。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM