【问题标题】:On Mac M1, can't run scripts in package.json: - sh: <dependency>: command not found在 Mac M1 上,无法在 package.json 中运行脚本:- sh: <dependency>: command not found
【发布时间】:2021-03-11 02:19:13
【问题描述】:

我刚得到一台供个人使用的 Mac Mini M1,我正在尝试运行一个预先存在的 React 应用程序。我成功安装了 nodejs 和 npm,据我所知,运行 npm install 确实正确添加了 node_modules 文件夹;但每当我运行npm startnpm run &lt;script&gt; 时,都会出现错误。似乎 npm 无法访问该项目的任何依赖项。我也使用 Rosetta 终端进行了尝试,结果相同。

例如,我使用 npx create-react-app test_app 初始化了一个新的 React 项目,然后将 cd 放入其中并运行 npm start。我得到了:

test_repo@0.1.0 start
> react-scripts start

sh: react-scripts: command not found

如何让这些命令正常运行并启动应用程序?

这是我用于 node 和 npm 的内容:

➜  test_repo npm -v
7.6.0
➜  test_repo node -v
v15.11.0

【问题讨论】:

  • 可能没有全局安装“react-scripts”应用程序。你能用npm i -g react-scripts命令安装它吗?

标签: npm apple-m1 rosetta


【解决方案1】:

我现在找到了一个(非常)hacky 的解决方案。我不是 npm 专家,但我发现 npm 脚本间接引用依赖项 - 例如,有一个命令说

"test": "jest"

告诉 npm 在 node_modules/.bin 中查找名为 jest 的文件并运行它。 问题与 npm 理解有关。但是可以通过将每个依赖项的地址放在脚本中来解决这个问题,例如:

"test" "node_modules/.bin/jest"

我能够以这种方式构建东西。如果有人提出更好的答案,请告诉我:P

【讨论】:

    猜你喜欢
    • 2020-09-26
    • 1970-01-01
    • 2020-01-28
    • 2017-07-06
    • 2022-12-21
    • 2016-02-24
    • 2011-12-18
    • 2019-07-07
    • 1970-01-01
    相关资源
    最近更新 更多