"react-scripts" 未被识别为内部或外部命令

289
我有一个Maven项目,其中克隆了一个JavaScript项目作为Git子模块。因此,目录结构看起来像这样:mavenapp/src/main/javascript/[npm项目文件] 在我的package.json文件中,测试如下:
"test": "react-scripts test --env=jsdom",

但是当我尝试运行npm test时,它会显示

'react-scripts' 不被认为是内部或外部命令,

有趣的是,当我独立克隆javascript项目时,我不会遇到这个错误。 我已经尝试重新运行npm install

NPM版本:5.5.1
Node.js版本:9.3.0


看这个链接:https://dev59.com/pFMI5IYBdhLWcg3wFnZC - Raja Nagendra Kumar
32个回答

305

在安装时,出现了关于 react-scripts 文件在你的 node_modules/ 目录中缺失的错误。

检查你的 package.json 中是否有 react-script 依赖。

如果没有,请手动添加:

npm install react-scripts --save

50
不要这样做,这可能会影响其他项目...你不应该像这样全局安装react-scripts。请参考此处:https://github.com/facebook/create-react-app/issues/2436#issuecomment-306830791 - Rosdi Kasim
15
阅读了您的评论之后,我意识到了我的错误。现在,我已经将命令更改为特定项目而不是全局(-g)。 - Yogesh Borad
2
对我来说什么都没有改变,还是这个错误。 即使成功运行“npm install react-scripts --save”,也不会在npm_modules文件夹中创建任何react-scripts文件夹。 我在Windows10上。 - Giox
1
如果使用 Yarn V2 或 Create React-App,您只需要在运行 yarn start 之前运行 yarn install - Janac Meena
6
在我的情况下,运行 yarn installnpm install 可以解决这个问题。请执行该命令。 - John Zenith
显示剩余2条评论

172
如果 package.json 中存在 react-scripts,则只需输入此命令。
npm install

如果 package.json 中没有 react-scripts,那么您可能还没有安装它。要安装它,请运行:

npm install react-scripts --save

14
如果我在package.json文件中有它的依赖,并且已经安装了它,但是仍然面临相同的问题,怎么办? - Serob_b
1
@Serob_b 有时我也遇到同样的问题,这种情况下我只需运行“npm install”即可解决问题。或者你可以在终端中键入rm“-rf node_modules”来删除node_modules文件夹,然后再运行“npm install”。希望这能帮到你。 - Hadi Mir
1
这是完整的答案。 - EgonBolton
1
仍然不工作。 - Yusuf

85

尝试:

rm -rf node_modules && npm install

通常情况下,先清空node_modules文件夹能够修复很多奇怪的与Node相关的软件包问题。


2
是的,我有...没有什么区别...目前我只能删除子模块并手动粘贴它。 - TheRealJimShady
嗯,你没有看到任何来自npm install的错误日志吗?尝试运行npm install -f并查看是否有任何更改。可能是另一个包无法安装并阻止create-react-app完全安装。强制使用-f进行npm安装永远不是完整的解决方案...只是一个故障排除步骤。如果在运行后发生任何更改,则知道其中一个软件包存在问题。 - Jonny Asmar
此外,您可能需要验证您是否在 javascript/node_modules/.bin/react-scripts 路径下有一个文件。如果没有,可能有几个不同的原因,包括权限问题、操作系统限制创建符号链接(node_moduels/.bin 中的所有内容都是在安装时生成的符号链接)。也可能只是您没有安装 react-scripts... 尝试运行 npm install --save react-scripts 看看是否有所帮助。 - Jonny Asmar
2
从MacOS迁移到Windows(Dropbox同步了所有的node_modules文件夹)- 只有删除该文件夹并重新安装才能解决问题。 - A-S
是的 - 那就是上述命令的作用。您遇到的问题很可能是由于许多软件包执行特定于操作系统的条件安装程序所致。Linux、Mac和Windows对许多基本项目依赖关系有很多差异。 - Jonny Asmar
我遇到了同样的问题,尝试了所有方法,而且我已经在Windows上了。文件在.bin文件夹中并已安装。 - TeeMee123

40

我运行这些命令成功了:

npm cache clean --force
npm rebuild
npm install

4
npm install => npm rebuild 对于我来说有效。我在使用'react-scripts'和'next'时遇到了这个错误。它似乎发生在我删除node_modules文件夹后,在以后的某个日期回到项目时。 - Jason
1
对我来说起作用了,但是npm cache clean --force不是必要的(node v14.17.3,npm 6.14.13)。我使用了npm cache verify。我不确定这是否有影响。 - Joe Sadoski
@crispengari,请解释这些命令如何工作并修复问题。 - Udesh

20

2023年答案:只需删除node_modules文件夹然后运行即可。

npm install
或者:
yarn

(取决于您使用的是npm还是yarn)

它对我有用!

无需再做更多!!!

这浪费了我很多时间,直到我发现这个方法,我头疼...


1
我刚刚忘记要做这件事,谢谢。 - Akashxolotl
你现在感觉怎么样,@Raskul? - TheRealJimShady

19

在我的情况下,我的node package出现了一些问题。所以我运行了 npm audit fix 命令并修复了所有的问题。


2
到目前为止,这似乎是最好的答案。我将我的代码从Macbook迁移到PC上,但无法运行我的React项目。 "npm audit fix" 立即解决了这个问题。 - Wakas Abbasid

15

为了避免这个问题再次发生或者每当有人下载您的项目时都会面临此问题。

最好使用以下命令将其添加到开发依赖项中:

npm install react-scripts --save-dev

它会像这样被添加。

  "devDependencies": {
    "react-scripts": "^4.0.3"
  }

提交并推送你的代码。


14

面对相同的问题,尽管我正在使用yarn。

以下方法对我有效:

yarn install 
yarn start

12
运行npm update命令解决了我的问题。

9

对于便携式应用程序更改

package.json

如下所示

"scripts": {

    "start": "node node_modules/react-scripts/bin/react-scripts start",
    "build": "node node_modules/react-scripts/bin/react-scripts build",
    "test": "node node_modules/react-scripts/bin/react-scripts test",
    "eject": "node node_modules/react-scripts/bin/react-scripts eject"
  }

不确定为什么会发生这种情况,但是我能够提供脚本的明确路径,它可以正常工作。 - Tanveer Badar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接