私は私のpackage.json
でnpm as a build toolなどを使用していますし、私のスクリプトの一部は、他のスクリプトに依存:npmと糸で動作するpackage.jsonスクリプト?
{
"test": "npm run lint && mocha"
}
これはpackage.json
にnpm
パッケージマネージャをハードコード。依存関係を表現するこのアプローチを、npm
とyarn
の両方でどのように機能させることができますか?
私は私のpackage.json
でnpm as a build toolなどを使用していますし、私のスクリプトの一部は、他のスクリプトに依存:npmと糸で動作するpackage.jsonスクリプト?
{
"test": "npm run lint && mocha"
}
これはpackage.json
にnpm
パッケージマネージャをハードコード。依存関係を表現するこのアプローチを、npm
とyarn
の両方でどのように機能させることができますか?
$npm_execpath
環境変数は、ビルドツールを指し、これだけ$npm_execpath
でnpm
を置き換える:
{
"test": "$npm_execpath run lint && mocha"
}
npm test
とyarn test
の両方が動作しますし、適切なビルドツールを使用します。
MJS'答えは素晴らしいですが、また、Windowsを含むすべての環境で動作するように主張されている小型のパッケージがあります:https://www.npmjs.com/package/yarpm
は、プロジェクトで使用するには、その後、yarn add yarpm --dev
/npm i -D yarpm
とは自分のスクリプトでyarpmを使用して実行しますこのように:パッケージのREADMEノートとして
{
"test": "yarpm run lint && mocha"
}
、あなたは自分のコマンドはから糸またはNPMのいずれかを通過するのに適しているであろうことを確認する必要があります:あなたは、唯一のパッケージに取り組んで引数/フラグを使用することはできませんマネージャー。
私は職場のWindowsマシンで作業するまで、これは私にとって素晴らしい仕事でした。 '' $ npm_execpath 'が内部コマンドまたは外部コマンドとして認識されないというエラーが表示される場合は、誰でもWindows上で動作させる方法を知っていますか?私はそれがそのオペレーティングシステムになるとやや愚かです。 – rgb
@rgbええ、あなたはWindows上で不運になるかもしれませんが、私はそこでどのように動作するのか分かりません。 – mjs
'$ npm_execpath'にスペースが含まれていると、変数を二重引用符で囲まないと事態が壊れる可能性があります。たとえば、 "test": "\" $ npm_execpath \ "lint && mocha"を実行します。 –