通过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"