package.json
nodejs 앱에서 버전을 설정하는 방법이 있습니까? 나는 이런 것을 원할 것이다
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",
...
}
답변
버전을 검색하는 방법에는 두 가지가 있습니다.
package.json
버전 요구 및 얻기 :
const { version } = require('./package.json');
- 환경 변수 사용
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
.
도움이 되길 바랍니다.