Npm 脚本总是给出错误 "is not recognized as an internal or external command"

Npm scripts always gives an error as "is not recognized as an internal or external command"

我有一个lerna repo。有 devDependency 可以从我的根 package.json 并发打包。当我在命令行中键入 "lerna bootstrap" 时,它可以正常工作并将所有根和子包依赖项安装到根 node_modules 文件夹中。但是当我输入 "npm start" 它说: 'concurrently' 不被识别为内部或外部命令。当我检查 node_modules/concurrently 文件夹时,它毫无问题地存在。

我的开始脚本是concurrently --kill-others "npm run start-client" "npm run start-server"

这种情况和webpack-dev-server一样。除了重新安装所有东西,我该如何解决这个问题。

package.json:

{
    "name": "x-workspace",
    "private": true,
    "workspaces": [
        "packages/*"
    ],
    "devDependencies": {
        "concurrently": "3.5.0",
        "lerna": "^2.11.0"
    },
    "scripts": {
        "start": "concurrently --kill-others \"npm run start-client\" \"npm run start-server\"",
        "build": "webpack --hot",
        "start-client": "npm --prefix ./packages/client-app start",
        "start-server": "cd ./packages/server-app && dotnet run",
        "clean": "rimraf node_modules package-lock.json ./packages/client-app/package-lock.json"
    }
}

我相信你没有全局安装 concurrently 包,要确认尝试执行以下命令并检查它是否 returns 任何东西,

npm list -g concurrently

如果您收到 --(empty) 响应,则必须全局安装它。

npm install -g concurrently

希望对您有所帮助!

我发现了问题。根 node_modules 文件夹中没有 .bin 文件夹。这是将 yarn 更新到 1.8.0 的结果。当我 return 回到 yarn 1.6.0 时,它工作得很好。

感谢 David R. 和其他用户。