2017-09-13 6 views
0

プロジェクトルートだけでなくサブフォルダからもNPMスクリプトを実行できます。しかし、現在の作業経路($ PWD)を伝えることができないという制約があります。NPMスクリプトで現在の作業ディレクトリを使用する方法(ネストされたサブフォルダ内の場合)

はのは、このようなコマンドがあります言ってみましょう:

"scripts": { 
    ... 
    "pwd": "echo $PWD" 
} 

私は、プロジェクトのルート(例えば、$PROJECT_ROOT/src/nested/dir)のサブフォルダ内npm run pwdを実行する場合は、代わりに私の現在のパス$PROJECT_ROOT/src/nested/dirをプリントアウトの、それは常に提供します$PROJECT_ROOT裏面。 package.jsonの場所に解決するのではなく、現在の作業ディレクトリを使用するようにNPMスクリプトに指示する方法はありますか?

は基本的に私は誰もが共有知識(例えば、npm run generator)の代わりに学習何のヨーマンの特定(例えばnpm i yo -g; yo generator)を使用することができるように、既存のプロジェクトにヨーマン発電機を引っ張るとNPMスクリプトを通してそれを使用したいです。ジェネレータは現在の作業パスに基づいてファイルを生成するため、NPMスクリプトは常にプロジェクトルートに解決されますが、使用する予定の場所ではジェネレータを使用できません。

答えて

1

既知の解決策の1つは、ENV可変注入によるものです。例えば

は、コマンドラインで変数を宣言します。常にcwd="$(pwd)"を渡し、しかし

"pwd": "cd $cwd && echo $PWD"

cwd="$(pwd)" npm run pwd

はpackage.json内のenv変数を消費プレフィックスはハックのように見えますが、クリーナー/ベットがありますエルソリューション?

+0

+1同じことをやろうとしていて、同じことをするのに到着したからです。 npmスクリプトに組み込むべき機能のようです。私は4つの文字を入力するだけで全体の依存関係を追加する必要はありません。 – oooyaya

関連する問題