노드 명령 행 인터페이스를 작성 중입니다. 전역 적으로 설치되며 실행을 위해 bin 파일을 사용합니다.노드 bin 스크립트를 실행할 때 명령 행 작업 디렉토리를 결정하십시오.
작업중인 파일의 루트 디렉토리에서 명령 창을 연 다음 명령을 실행하지만 현재 작업 디렉토리를 확인할 수 없으므로 process.cwd()
은 노드 패키지의 디렉토리를 반환합니다. . 처음에는 코드가 래퍼로 배치 파일을 사용하여 실행 되었기 때문에 (처음에는 노드없이 bin 파일을 실행할 수 있음) 다음은 불가능하지만 coffee 스크립트는이를 수행 할 수 있다고 가정했습니다. 나는 커피 스크립트 소스를 살펴 봤지만 그것을 따라갈 수는 없었다. 빈에서
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
이 테스트 - 패키지 파일 :
#!/usr/bin/env node
var path = require('path');
var fs = require('fs');
var lib = path.join(path.dirname(fs.realpathSync(__filename)), '../lib');
require(lib + '/test');
사람이에 도움이 되거 수를 자신이 package.json 파일을 사용하여 패키지를 작성하기위한
그것을 테스트합니다.
그런 다음 lib/test에서 명령 줄 디렉토리를 가져 오십시오.
'process.chdir()'다음에 원본을 가져 오는 방법이 있습니까? – reergymerej
@reergymerej chdir() (예 :'var originalCwd = process.cwd();'을 실행하기 전에 먼저 cwd를 저장하고'process.chdir()'을 실행하면 원래의 것으로 돌아갈 수 있습니다). – Swivel
은'../ lib/test' portable입니까? – Sebastian