ノードのコマンドラインインターフェイスを作成しています。グローバルにインストールされ、binファイルを使用して実行されます。
作業中のファイルのルートディレクトリでコマンドウィンドウを開いてコマンドを実行する予定ですprocess.cwd()
が、ノードパッケージのディレクトリを返すため、現在の作業ディレクトリを特定できませんでした。最初はコードがバッチファイルをラッパーとして使用して実行されているため(つまり、最初にノードなしでbinファイルを実行できる方法)、それは不可能ですが、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()
、オリジナルを入手する方法はありますか?