通過npm run
exexcuted任何定義NPM腳本將尋找executionable二進制文件從
cd your_project
./node_modules/.bin
文件夾第一。您還可以看到其完整路徑通過:
npm bin
這些二進制文件從項目的確定依賴通過npm install
來從package.json
。
npm run start
因此被euquivalent到運行:
./node_modules/.bin/react-scripts start
當您嘗試運行
react-scripts start
自身
,你終端只會看你的系統的PATH
,並設法找到它。
echo $PATH
所以如果你只react-scripts
本地和沒有安裝全球範圍內,它將找不到可執行二進制文件,因此失敗。
如果你想在全球範圍內運行它,你必須在全球範圍內安裝:
npm install -g react-scripts
which react-scripts
~/.nvm/versions/node/v7.10.0/bin/react-scripts //
和~/.nvm/versions/node/v7.10.0/bin
是我的路徑的一部分。
圖片的標題說明:
我喜歡有每個項目定義自己的依賴其具體版本本地和僅使用。因爲您可能有多個項目依賴於不同版本的二進制文件。
而且,如果您始終如一地使用package.json
中定義的那個,則不會遇到問題。
當您的npm腳本始終重建狀態時,它還可以防止「同事在我的機器上工作」問題。
隨着新公共管理這是一個有點亂,你要麼定義所有的依賴庫要在故宮腳本中使用,或者您必須運行像每個命令:
$(npm bin)/yourCmd
因爲我也很喜歡使用yarn
爲我的npm替代品,我越來越喜歡它的默認設置,以便始終查看項目的bin文件夾以執行cmd通過:
yarn yourCmd
$ "/home/philipp/my-project/node_modules/.bin/yourCmd"