用重定向到的内容替换 npm start
replace npm start by what it redirects to
我正在测试代码,在 .json 文件中有:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build"
}
当我 运行
时代码运行良好
npm start
在控制台中。
但是npm start
应该是一条捷径。如果我写:
react-scripts start
而不是在控制台中它不起作用。我的错误信息是
react-scripts: command not found
为什么?不是等价的吗?如果没有找到反应脚本,使用 npm start
是如何工作的?
谢谢
任何由 npm run
执行的定义的 npm 脚本将从
中寻找可执行的二进制文件
cd your_project
./node_modules/.bin
首先是文件夹。您还可以通过以下方式查看其完整路径:
npm bin
这些二进制文件来自您的项目定义的依赖项,来自 package.json
通过 npm install
。
npm run start
因此等同于 运行ning:
./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 脚本持续重建状态时,它还可以防止 "works on my machine" 与同事发生问题。
使用 npm 有点麻烦,因为您要么定义要在 npm 脚本中使用的所有依赖库,要么必须 运行 每个命令,例如:
$(npm bin)/yourCmd
因为我也喜欢使用 yarn
作为我的 npm 替代品,所以我越来越喜欢它的默认设置,即始终查看项目的 bin 文件夹,以便通过以下方式执行命令:
yarn yourCmd
$ "/home/philipp/my-project/node_modules/.bin/yourCmd"
我正在测试代码,在 .json 文件中有:
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build"
}
当我 运行
时代码运行良好npm start
在控制台中。
但是npm start
应该是一条捷径。如果我写:
react-scripts start
而不是在控制台中它不起作用。我的错误信息是
react-scripts: command not found
为什么?不是等价的吗?如果没有找到反应脚本,使用 npm start
是如何工作的?
谢谢
任何由 npm run
执行的定义的 npm 脚本将从
cd your_project
./node_modules/.bin
首先是文件夹。您还可以通过以下方式查看其完整路径:
npm bin
这些二进制文件来自您的项目定义的依赖项,来自 package.json
通过 npm install
。
npm run start
因此等同于 运行ning:
./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 脚本持续重建状态时,它还可以防止 "works on my machine" 与同事发生问题。
使用 npm 有点麻烦,因为您要么定义要在 npm 脚本中使用的所有依赖库,要么必须 运行 每个命令,例如:
$(npm bin)/yourCmd
因为我也喜欢使用 yarn
作为我的 npm 替代品,所以我越来越喜欢它的默认设置,即始终查看项目的 bin 文件夹,以便通过以下方式执行命令:
yarn yourCmd
$ "/home/philipp/my-project/node_modules/.bin/yourCmd"