태그 보관물: node.js

node.js

nodejs 코드의 package.json에서 버전을 얻는 방법이 있습니까? port = process.env.PORT ||

package.jsonnodejs 앱에서 버전을 설정하는 방법이 있습니까? 나는 이런 것을 원할 것이다

var port = process.env.PORT || 3000
app.listen port
console.log "Express server listening on port %d in %s mode %s", app.address().port, app.settings.env, app.VERSION



답변

다음 코드 조각이 가장 효과적이라는 것을 알았습니다. require를로드하는 데 사용 하기 때문에 package.json현재 작업 디렉토리에 관계없이 작동합니다.

var pjson = require('./package.json');
console.log(pjson.version);

@Pathogen에 의한 경고 :

Browserify로이를 수행하면 보안에 영향을 미칩니다. 모든 종속성 버전 번호, 빌드 및 테스트 명령 등이 클라이언트로 전송되므로 클라이언트
에 노출되지 않도록주의하십시오 package.json.
동일한 프로젝트에서 서버와 클라이언트를 빌드하는 경우 서버 측 버전 번호도 노출됩니다. 이러한 특정 데이터는 서버의 공격에 더 잘 맞도록 공격자가 사용할 수 있습니다.


답변

‘npm start’로 응용 프로그램을 시작한 경우 다음을 사용하면됩니다.

process.env.npm_package_version

자세한 내용은 package.json vars 를 참조하십시오.


답변

ES6 모듈을 사용하면 다음을 수행 할 수 있습니다.

import {version} from './package.json';


답변

또는 평범한 오래된 껍질에서 :

node -e "console.log(require('./package.json').version);"

이것은 단축 될 수 있습니다

node -p "require('./package.json').version"

이것이 정확히 질문 한 내용은 아니지만, package.json자체 버전을 사용하려는 경우에 유용합니다 ( 예 script: :

{
  "name": "myapp",
  "version": "0.1.2",
  "scripts": {
    "run": "node index.js 2>&1 | tee -a myapp_v$(node -p \"require('./package.json').version\").log",
  ...
}


답변

버전을 검색하는 방법에는 두 가지가 있습니다.

  1. package.json버전 요구 및 얻기 :
const { version } = require('./package.json');
  1. 환경 변수 사용
const version = process.env.npm_package_version;

사용하지 마십시오 JSON.parse, fs.readFile, fs.readFileSync다른 사용하지 않는 npm modules이 질문 것이 필요는 없습니다합니다.


답변

package.json에서 버전을 읽는 방법은 다음과 같습니다.

fs = require('fs')
json = JSON.parse(fs.readFileSync('package.json', 'utf8'))
version = json.version


답변

pkginfo 모듈을 package.json사용 하여 파일 에서 특정 정보를 가져 오는 다른 방법이 있습니다 .

이 모듈의 사용법은 매우 간단합니다. 다음을 사용하여 모든 패키지 변수를 얻을 수 있습니다.

require('pkginfo')(module);

또는 특정 세부 정보 만 ( version이 경우)

require('pkginfo')(module, 'version');

패키지 변수가로 설정 module.exports되므로 (을 통해 버전 번호에 액세스 할 수 있음 module.exports.version).

다음 코드 스 니펫을 사용할 수 있습니다.

require('pkginfo')(module, 'version');
console.log "Express server listening on port %d in %s mode %s", app.address().port, app.settings.env, module.exports.version

이 모듈은 매우 멋진 기능을 가지고 있습니다. 프로젝트의 모든 파일 (예 : 하위 폴더)에서 사용할 수 있으며의 정보를 자동으로 가져옵니다 package.json. 따라서 어디에 있는지 걱정할 필요가 없습니다 package.json.

도움이 되길 바랍니다.