ノードコマンドラインインターフェイスを作成しています。グローバルにインストールされ、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内のコマンドラインディレクトリを取得してみてください。