コマンド(yarn
、JavaScriptのパッケージマネージャで提供)の使用に問題があります。package.jsonのscriptsオブジェクトで「yarn run」が実行されない
現在、私のpackage.json
ファイルには、私のscripts
オブジェクトに以下のものがあります。
"scripts": {
"lint": "./node_modules/.bin/eslint --ignore-pattern dist ."
}
私は、次のコマンドを実行すると、予想通り、それはnpm run lint
、動作します。しかし、yarn
からyarn run lint
でスクリプトを実行すると、次のエラーが表示されます。
Petesta :: λ -> ~/Git/yarn yarn run lint
yarn run v0.15.1
$ "./node_modules/.bin/eslint --ignore-pattern dist ."
sh: ./node_modules/.bin/eslint --ignore-pattern dist .: No such file or directory
error Command failed with exit code 127.
info Visit http://yarnpkg.com/en/docs/cli/run for documentation about this command.
./node_modules/.bin
ディレクトリには、私の$PATH
にあり、私はあなたがdate
またはpwd
のような実行可能ファイルを持っている場合に予想されるとして、その後yarn run some_script_on_date
が動作することを通知しました。
これを動作させる1つの方法は、実行しようとしているコマンドを含む別のシェルファイルを作成することです。それを./scripts/lint.sh
としましょう。その後、
#!/bin/bash
./node_modules/.bin/eslint --ignore-pattern dist .
そして、あなたのscripts
オブジェクトに今すぐファイルにchmod +x ./scripts/lint.sh
を、このコマンドを実行するには、以下の行を追加します。
"new_lint": "./scripts/lint.sh"
そして、yarn run new_lint
は期待どおりに動作します。
何かが見つからないか、yarn
の呼び出しスクリプトを実行する必要がありますか?私はnpm
のようなコマンドを実行したいと思います。
私はeslint' 'でそれを試してみましたが、それがそのように動作しませんでした。コマンドが見つかりません。 'npm run'では動作しますが、' yarn run'では動作しません。 – Petesta
言い換えれば、先日、笑、パッケージは 'yarnpkg'と呼ばれ、'糸 'のために最近非難されました。この廃止の前に 'yarnpkg run command'が期待通りに機能しました。新しいパッケージでは動作しません。 – Petesta
ああ、私は誤解しました。ただリリースを待たなければならない。 – Petesta