簡體   English   中英

如何查找項目支持的節點版本

[英]How to find what node version a project supports

除了反復試驗之外,還有其他方法可以檢測我應該在存儲庫上使用哪個節點版本?

隨着 Web 框架的快速興起,回到 6、12 或 24 個月前的項目已經成為一種普遍的需求。 過去幾周我一直在做這件事,我檢測正確節點版本的過程變成了:

git clone [REPO]
npm i
[build]
### if error
rm -r node_modules
nvm use 4, 5 or 6
npm i
[build]

我不禁覺得這里缺少一些非常基本的東西。 感謝您與我分享的任何智慧!

正如其他答案中提到的,一些包在package.json有一個engines字段。 如果用戶嘗試在包不支持的 Node.js 版本上安裝包, npm會警告用戶。 engines字段如下所示:

{
  "engines": {
    "node": ">=4.0.0"
  }
}

更多信息: https : //docs.npmjs.com/files/package.json#engines


此外,許多包都有一個 CI,如 TravisCI,設置為自動測試包。 這些 CI 配置文件通常包含要測試的 Node.js 版本列表。 通常,CI 配置中的最低版本號是包支持的最低版本。

常見的配置文件名有.travis.ymlappveyor.ymlcircle.yml等。

例子:

.travis.yml

language: node_js
node_js:
  - "4"
  - "5"
  - "6"
  - "7"

此配置意味着該包可能支持 Node.js v4+

如果這些是您自己的存儲庫,那么您可以將 Node 版本存儲在包 json 中以供參考。

"version": "1.0.0",
"engines": {
    "node": "7.x"
},
"description": "..."

這不會自動設置正確的版本,但它會為您提供查看的地方。

如果您確實需要反復試驗,則可以使用 npm 的節點與 npx 結合來加速該過程

npx node@4 myscript.js

您甚至可以設置一個 shell autofallback 選項,所以只需

node@4 myscript.js

項目可能有一個包含有效版本的.nvmrc文件

如果開發人員未在 package.json 中指定節點引擎參數,您可以嘗試查看節點模塊的 package.json 中的相同參數。 如果您使用通用井支持模塊,它可能會被定義。 運行以下命令將為您提供一個半排序的版本列表。

grep -hoP '"node":.*' node_modules/*/package.json | sort

通常,需要最高版本節點的模塊決定了項目運行所需的節點版本。

暫無
暫無

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

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