Back Ground

Node - 시멘틱 버전 체크를 위한 모듈 [semver] 본문

Javascript/Node.js

Node - 시멘틱 버전 체크를 위한 모듈 [semver]

Back 2019. 3. 11. 14:13


시멘틱 버전 semver


한글로는 유의적 버전이라 한다. 

1.2.3 이라고 할때 각 자리수를 어떻게 매기지는 정의한 개념이다.


npm : https://www.npmjs.com/package/semver


semver

node-semver : 시멘틱 버전 체크를 위한 노드 모듈이다.


  • valid(): 유효한 버전 형식인지 체크
  • satisfies(target, required): target 버전이 required 조건에 맞는지 체크


[이용 방식]

semver 모듈을 이용해 서버 초기화 작업시 버전 체크하는 로직을 추가할 수 있다.


[노드 버전 체크]

package.json 파일에서 노드 버전과 실제 설치된 노드버전을 체크한다. satisfies() 함수 호출후 올바른 버전이 아닐경우 에러 메세지를 출력한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let semver = require('semver'),
    packages = require('./package.json');
 
function checkNodeVersion() {
  // 노드 버전이 지원되지 않는 경우 사용자에게 알려주고 종료한다.
  try {
    if (!semver.satisfies(process.versions.node, packages.engines.node)) {
        console.error('\x1B[31mERROR: Unsupported version of Node');
        console.error('\x1B[31mThis app needs Node version ' + packages.engines.node +
                      ' you are using version ' + process.versions.node + '\033[0m\n');
 
        process.exit(0);
    }
  } catch (e) {
    return;
  }
},
cs




출처 : http://blog.jeonghwan.net/%EC%84%9C%EB%B2%84-%EA%B5%AC%EB%8F%99%EC%8B%9C-%EB%B2%84%EC%A0%84-%EC%B2%B4%ED%81%AC/


Semantic version semver


In Korean, it is called a significant version . 

When we say 1.2.3, how to assign each digit is a defined concept.


npm:  https://www.npmjs.com/package/semver


semver

node-semver : A node module for semantic version check.


  • valid(): Checks whether the version format is valid
  • satisfies(target, required): Checks whether the target version meets the required conditions.


[How to use]

You can use the semver module to add logic to check the version when initializing the server.


[Node version check]

Check the node version and the actually installed node version in the package.json file. If the version is not correct after calling satisfies(), an error message is displayed.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let semver = require('semver'),
    packages = require('./package.json');
 
function checkNodeVersion() {
  //If the node version is not supported, notify the user and exit.
  try {
    if (!semver.satisfies(process.versions.node, packages.engines.node)) {
        console.error('\x1B[31mERROR: Unsupported version of Node');
        console.error('\x1B[31mThis app needs Node version ' + packages.engines.node +
                      ' you are using version ' + process.versions.node + '\033[0m\n');
 
        process.exit(0);
    }
  } catch (e) {
    return;
  }
},
cs



Source: http://blog.jeonghwan.net/%EC%84%9C%EB%B2%84-%EA%B5%AC%EB%8F%99%EC%8B%9C-%EB%B2%84%EC%A0%84-%EC%B2%B4%ED%81%AC/



セマンティックバージョンsemver


ハングルでは有意バージョンという。 

1.2.3としたときに、各桁をどのように付けられる定義概念である。



npm : https://www.npmjs.com/package/semver


semver

node-semver:セマンティックバージョンチェックのためのノードモジュールである。


  • valid():有効なバージョンの形式であることをチェック
  • satisfies(target、required):targetバージョンがrequired条件を満たしてチェック


【利用方法】

semverモジュールを利用してサーバーの初期化作業時のバージョンチェックするロジックを追加することができる。


[ノードのバージョンチェック]

package.jsonファイルでノードのバージョンと実際のインストールされたノードのバージョンをチェックする。satisfies()関数の呼び出し後、正しいバージョンではない場合は、エラーメッセージを出力する。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
let semver = require('semver'),
    packages = require('./package.json');
 
function checkNodeVersion() {
  //ノードのバージョンがサポートされていない場合、ユーザーに通知終了する
  try {
    if (!semver.satisfies(process.versions.node, packages.engines.node)) {
        console.error('\x1B[31mERROR: Unsupported version of Node');
        console.error('\x1B[31mThis app needs Node version ' + packages.engines.node +
                      ' you are using version ' + process.versions.node + '\033[0m\n');
 
        process.exit(0);
    }
  } catch (e) {
    return;
  }
},
cs




出典:http://blog.jeonghwan.net/%EC%84%9C%EB%B2%84-%EA%B5%AC%EB%8F%99%EC%8B%9C-%EB%B2%84%EC%A0%84-%EC%B2%B4%ED%81%AC/


Comments