package.json에서 필요한 Node.js 버전을 지정하려면 어떻게해야합니까?
Node 버전 12 이상이 필요한 Node.js 프로젝트가 있습니다. packages.json 파일에서이를 지정하여 설치 프로그램이 사용자에게 업그레이드해야하는지 자동으로 확인하고 알리도록하는 방법이 있습니까?
"엔진"필드를 사용할 수 있다고 생각합니다.
{ "engines" : { "node" : ">=0.12" } }
코드가 하위 버전에서 작동하지 않는다고 말하면 "engineStrict"플래그도 원할 것입니다.
{ "engineStrict" : true }
package.json 파일에 대한 설명서 는 npmjs 사이트 에서 찾을 수 있습니다.
최신 정보
engineStrict
더 이상 사용되지 않으므로 경고 만 표시됩니다. npm config set engine-strict true
원하는 경우 사용자가 실행 해야합니다.
더하다
에 package.json
"engines": {
"node": ">=10.0.0",
"npm": ">=6.0.0"
},
파일에 .npmrc
( package.json
같은 디렉토리에 가까운 )
engine-strict=true
Ibam engineStrict
이 말했듯 이 이제는 더 이상 사용되지 않습니다. 그러나이 솔루션을 찾았습니다.
check-version.js :
import semver from 'semver';
import { engines } from './package';
const version = engines.node;
if (!semver.satisfies(process.version, version)) {
console.log(`Required node version ${version} not satisfied with current version ${process.version}.`);
process.exit(1);
}
package.json :
{
"name": "my package",
"engines": {
"node": ">=50.9" // intentionally so big version number
},
"scripts": {
"requirements-check": "babel-node check-version.js",
"postinstall": "npm run requirements-check"
}
}
자세한 내용은 https://medium.com/@adambisek/how-to-check-minimum-required-node-js-version-4a78a8855a0f#.3oslqmig4 에서 확인하십시오.
.nvmrc
그리고 한 가지 더. dotfile '.nvmrc의 특정 노드 버전을 필요로 사용할 수 있습니다 - https://github.com/creationix/nvm#nvmrc
그러나 npm 스크립트 (및 원사 스크립트)만이 존중됩니다.
.nvmrc
이처럼 NVM 을 사용하고 있다면 주어진 프로젝트에 필요한 nodejs 버전을 git-tracked .nvmrc
파일로 나타낼 수 있습니다 .
echo v10.15.1 > .nvmrc
이것은 cd
제정신 에 자동으로 적용되지 않습니다 . 사용자는 다음을 수행해야합니다.
nvm use
이제 해당 버전의 노드가 현재 쉘에 사용됩니다.
가지고있는 노드의 버전을 나열 할 수 있습니다.
nvm list
.nvmrc
https://github.com/creationix/nvm/tree/02997b0753f66c9790c6016ed022ed2072c22603#nvmrc에 문서화되어 있습니다.
NVM 0.33.11로 테스트되었습니다.
이 작업을 수행하는 또 다른 간단한 방법이 있습니다.
npm install Node@8
(노드 8을 package.json의 종속성으로 저장)- 여러분의 앱은 누구든지 노드 8을 사용하여 실행됩니다 – 심지어 원사 사용자들!
이것은 node
노드를 패키지 바이너리로 제공하는 패키지 일뿐 이므로 작동합니다 . node_module / .bin 만 포함하면 스크립트를 패키징 할 수있는 노드 만 만들 수 있습니다. 메인 쉘이 아닙니다.
https://twitter.com/housecor/status/962347301456015360 에서 트위터에 대한 토론을 참조하십시오.
모카 테스트 사례 예 :
describe('Check version of node', function () {
it('Should test version assert', async function () {
var version = process.version;
var check = parseFloat(version.substr(1,version.length)) > 12.0;
console.log("version: "+version);
console.log("check: " +check);
assert.equal(check, true);
});});
'IT story' 카테고리의 다른 글
파이썬에서 x **. 5 또는 math.sqrt (x) 중 어느 것이 더 빠릅니까? (0) | 2020.05.27 |
---|---|
Bash에서 배열을 슬라이스하는 방법 (0) | 2020.05.26 |
“self.x = x; (0) | 2020.05.26 |
Java ClassLoader 란 무엇입니까? (0) | 2020.05.26 |
PHP에서 GET URL 매개 변수 (0) | 2020.05.26 |