작성중인 라이브러리에서 실행중인 현재 노드 버전에 프로그래밍 방식으로 액세스해야합니다. 문서에서 이것을 찾을 수 없습니다.
답변
process.version 속성을 보십시오 .
답변
process.version.match(/^v(\d+\.\d+)/)[1]
경우 process.version
는 ‘v0.11.5’, 다음 얻을 0.11
.
답변
semver 를 사용 하여 비교하십시오 process.version
.
const semver = require('semver');
if (semver.gte(process.version, '0.12.18')) {
...
}
답변
실제로 process.versions
다른 노드 구성 요소에 많은 버전을 제공하는 객체 를 사용하는 것이 좋습니다 . 예:
{
http_parser: '2.5.2',
node: '4.4.3',
v8: '4.5.103.35',
uv: '1.8.0',
zlib: '1.2.8',
ares: '1.10.1-DEV',
icu: '56.1',
modules: '46',
openssl: '1.0.2g'
}
답변
메이저 버전 만 확인해야하는 경우 다음과 같은 더 빠르고 더러운 스 니펫을 사용할 수 있습니다.
const NODE_MAJOR_VERSION = process.versions.node.split('.')[0];
if (NODE_MAJOR_VERSION < 12) {
throw new Error('Requires Node 12 (or higher)');
}
노트:
process.versions.node
process.version
버전이 선행으로 시작하는지에 대해 걱정할 필요가 없으므로 보다 작업하기 쉽습니다.v
.- 여전히 고대 버전 (예 : 0.10 및 0.12)을 구별해야하는 경우 모두 버전으로 간주되므로 작동하지 않습니다
"0"
.
답변
내 코드베이스와 비슷한 문제가있었습니다. 런타임에 서버를 실행하는 데 사용할 현재 NodeJ 버전을 알고 싶었습니다. 이를 위해 npm run start
스크립트를 사용하여 서버를 시작하기 전에 실행할 수있는 코드를 작성했습니다. 이 질문 에서 도움이되는 코드는 다음과 같습니다 .
'use strict';
const semver = require('semver');
const engines = require('./package').engines;
const nodeVersion = engines.node;
// Compare installed NodeJs version with required NodeJs version.
if (!semver.satisfies(process.version, nodeVersion)) {
console.log(`NodeJS Version Check: Required node version ${nodeVersion} NOT SATISFIED with current version ${process.version}.`);
process.exit(1);
} else {
console.log(`NodeJS Version Check: Required node version ${nodeVersion} SATISFIED with current version ${process.version}.`);
}
내 package.json은 다음과 같습니다.
{
"name": "echo-server",
"version": "1.0.0",
"engines": {
"node": "8.5.0",
"npm": "5.3.0"
},
"description": "",
"main": "index.js",
"scripts": {
"check-version" : "node checkVersion.js",
"start-server" : "node app.js"
"start" : "npm run check-version && npm run start-server",
"test": "npm run check-version && echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"bluebird": "^3.5.1",
"express": "^4.16.3",
"good-guy-http": "^1.10.3",
"semver": "^5.5.0"
}
}
실행합니까 npm install
당신이 실행하기 전에 명령을 npm run start
프로젝트를 실행하는 명령을 사용합니다.
답변
노드 js 실행 환경에 액세스하는 경우 2 개의 기본 항목이 있습니다 (하나는 단순하고 하나는 세부 사항 임)
process.version
당신에게 줄 것이다 :
'v10.16.0'
process.versions
당신에게 줄 것이다 :
{ http_parser: '2.8.0',
node: '10.16.0',
v8: '6.8.275.32-node.52',
uv: '1.28.0',
zlib: '1.2.11',
brotli: '1.0.7',
ares: '1.15.0',
modules: '64',
nghttp2: '1.34.0',
napi: '4',
openssl: '1.1.1b',
icu: '64.2',
unicode: '12.1',
cldr: '35.1',
tz: '2019a' }