노드 명령 줄 인터페이스를 만들고 있습니다. 전역 적으로 설치되며 실행을 위해 bin 파일을 사용합니다.
작업중인 파일의 루트 디렉터리에서 명령 창을 열고 명령을 실행하려고하지만 process.cwd()
노드 패키지의 디렉터리를 반환하는 현재 작업 디렉터리를 확인할 수 없습니다 . 처음에는 코드가 배치 파일을 래퍼로 사용하여 실행되고 있기 때문에 (즉, 빈 파일이 처음에 노드없이 실행되는 방식) 불가능하지만 coffee-script가이를 수행한다고 가정했습니다. 나는 커피 스크립트 소스를 살펴 봤지만 따라갈 수 없었습니다 (충분히 경험하지 못함).
직접 테스트하려면이 package.json 파일을 사용하여 패키지를 만듭니다.
{
"name": "test-package",
"version": "1.0.0",
"bin": {
"test-package": "./bin/test-package"
},
"main": "/lib/test"
}
bin에있는이 테스트 패키지 파일 :
#!/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');
누구든지 이것에 약간의 빛을 비출 수 있습니까?
그런 다음 lib / test 내에서 명령 줄 디렉터리를 가져옵니다.
process.chdir()
원본을 얻을 수있는 방법이 있습니까?