我在使用Facebook的JavaScript包管理器yarn
提供的run
命令時遇到問題。在package.json腳本對象上運行「紗線運行」時出錯
當前在我的package.json
文件中我有以下針對我的scripts
對象。
"scripts": {
"lint": "./node_modules/.bin/eslint --ignore-pattern dist ."
}
當我運行以下命令時,它按預期工作,npm run lint
。但是,當我使用從yarn
運行腳本時,我收到以下錯誤。
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
會工作。
讓這個工作起來的一種方法是創建一個單獨的shell文件,其中包含您要執行的命令。我們稱之爲./scripts/lint.sh
。
#!/bin/bash
./node_modules/.bin/eslint --ignore-pattern dist .
,然後在文件chmod +x ./scripts/lint.sh
現在,在您scripts
對象運行這個命令添加以下行。
"new_lint": "./scripts/lint.sh"
而現在yarn run new_lint
將按預期運行。
我錯過了什麼,或者這是如何在yarn
調用腳本需要完成?我希望像npm
一樣運行命令。
我'eslint'試了一下,並沒有這樣的。該命令未找到。 這將與'npm run'一起使用,但不能與'yarn run'一起使用。 – Petesta
字面上,有一天,大聲笑,這個包被稱爲'yarnpkg',並且剛剛被棄用於'紗線'。在此棄用之前'yarnpkg run command'按預期工作。現在使用新的軟件包不起作用。 – Petesta
啊,我誤解了。只需等待發布。 – Petesta