2017-01-14 21 views
3

私は私のpackage.jsonnpm as a build toolなどを使用していますし、私のスクリプトの一部は、他のスクリプトに依存:npmと糸で動作するpackage.jsonスクリプト?

{ 
    "test": "npm run lint && mocha" 
} 

これはpackage.jsonnpmパッケージマネージャをハードコード。依存関係を表現するこのアプローチを、npmyarnの両方でどのように機能させることができますか?

答えて

5

$npm_execpath環境変数は、ビルドツールを指し、これだけ$npm_execpathnpmを置き換える:

{ 
    "test": "$npm_execpath run lint && mocha" 
} 

npm testyarn testの両方が動作しますし、適切なビルドツールを使用します。

+1

私は職場のWindowsマシンで作業するまで、これは私にとって素晴らしい仕事でした。 '' $ npm_execpath 'が内部コマンドまたは外部コマンドとして認識されないというエラーが表示される場合は、誰でもWindows上で動作させる方法を知っていますか?私はそれがそのオペレーティングシステムになるとやや愚かです。 – rgb

+0

@rgbええ、あなたはWindows上で不運になるかもしれませんが、私はそこでどのように動作するのか分かりません。 – mjs

+0

'$ npm_execpath'にスペースが含まれていると、変数を二重引用符で囲まないと事態が壊れる可能性があります。たとえば、 "test": "\" $ npm_execpath \ "lint && mocha"を実行します。 –

1

MJS'答えは素晴らしいですが、また、Windowsを含むすべての環境で動作するように主張されている小型のパッケージがあります:https://www.npmjs.com/package/yarpm

は、プロジェクトで使用するには、その後、yarn add yarpm --dev/npm i -D yarpmとは自分のスクリプトでyarpmを使用して実行しますこのように:パッケージのREADMEノートとして

{ 
    "test": "yarpm run lint && mocha" 
} 

、あなたは自分のコマンドはから糸またはNPMのいずれかを通過するのに適しているであろうことを確認する必要があります:あなたは、唯一のパッケージに取り組んで引数/フラグを使用することはできませんマネージャー。

関連する問題