我有一个maven项目,其中是JavaScript项目克隆为一个git子模块。所以目录结构看起来像mavenapp/src/main/javascript/[npm项目文件]

在我的包裹里。Json,测试是这样的:

"test": "react-scripts test --env=jsdom",

但是当我尝试运行npm test时,它说

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

有趣的是,当我独立克隆javascript项目时,我没有得到这个错误。我试着重新运行npm install。

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


当前回答

昨天在Azure DevOps中运行npm run build时突然出现这个错误:

“react-scripts”不被视为内部或外部命令、可操作程序或批处理文件。

然而,当查看完成的npm ci时,它充满了错误,比如:

FetchError:试图获取时无效的响应体 https://registry.npmjs.org/@babel%2fcompat-data: ENOENT:没有这样的文件 或者目录,lstat “D: \ \ 1. npm_cacache \ content-v2 \ sha512 \ 58 \ 0 b \ dc7dce0b33e86d97736b3c419005951e32af28dda3f5b8c746f16d53d4baed1dc2fd2493e9310f744696008400bf8c91ca84f9fb3ebf541ba93a541b144a”

当注释掉缓存时,一切又开始工作了:

npm_config_cache: $(Pipeline.Workspace)/.npm

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | $(clientApp)\package-lock.json'
    restoreKeys: |
       npm | "$(Agent.OS)"
    path: $(npm_config_cache)
  displayName: Cache npm

奇怪的是,直到昨天(2021-12-02),它已经工作了一年多,我们使用与微软记录的完全相同的代码进行缓存。

https://learn.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops#nodejsnpm

注意Azure DevOps状态已降级或不健康

https://status.dev.azure.com/

其他回答

这是不建议的,所以请不要向下箭头,而是为了排除故障..

React-scripts不能被识别为与npm相关的内部或外部命令。

我将更新包中的所有依赖项。如果适用,将Json文件转移到主目录和客户端目录中的最新版本。 您可以通过使用星号“*”而不是在包中指定特定的版本号来做到这一点。Json文件为您的依赖。

例如:

"dependencies": {
    "body-parser": "*",
    "express": "*",
    "mongoose": "*",
    "react": "*",
    "react-dom": "*",
    "react-final-form": "*",
    "react-final-form-listeners": "*",
    "react-mapbox-gl": "*",
    "react-redux": "*",
    "react-responsive-modal": "*",
  }

然后我要确保所有的包都被锁住了。删除Json,然后在主目录和客户端目录下运行NPM install和yarn install(如果适用的话)。

然后,您应该能够运行一个yarn构建,然后使用yarn start运行应用程序。

在我的例子中,我在安装了节点v14.0.5的Linux上编辑了我的文件,当我重新启动到安装了节点v14.0.3的Windows时,我得到了同样的错误。所以我更新了windows上的节点版本,一切都很好。

要纠正此问题,请执行以下步骤

运行NPM install 然后运行NPM start

这对我来说很有效

昨天在Azure DevOps中运行npm run build时突然出现这个错误:

“react-scripts”不被视为内部或外部命令、可操作程序或批处理文件。

然而,当查看完成的npm ci时,它充满了错误,比如:

FetchError:试图获取时无效的响应体 https://registry.npmjs.org/@babel%2fcompat-data: ENOENT:没有这样的文件 或者目录,lstat “D: \ \ 1. npm_cacache \ content-v2 \ sha512 \ 58 \ 0 b \ dc7dce0b33e86d97736b3c419005951e32af28dda3f5b8c746f16d53d4baed1dc2fd2493e9310f744696008400bf8c91ca84f9fb3ebf541ba93a541b144a”

当注释掉缓存时,一切又开始工作了:

npm_config_cache: $(Pipeline.Workspace)/.npm

- task: Cache@2
  inputs:
    key: 'npm | "$(Agent.OS)" | $(clientApp)\package-lock.json'
    restoreKeys: |
       npm | "$(Agent.OS)"
    path: $(npm_config_cache)
  displayName: Cache npm

奇怪的是,直到昨天(2021-12-02),它已经工作了一年多,我们使用与微软记录的完全相同的代码进行缓存。

https://learn.microsoft.com/en-us/azure/devops/pipelines/release/caching?view=azure-devops#nodejsnpm

注意Azure DevOps状态已降级或不健康

https://status.dev.azure.com/

在修复此问题时,使用git bash或windows cmd(具有admin权限)运行npm install,在编辑器的终端中运行这些命令没有帮助。