npm install 后,npm start 失败

4
我使用我的操作系统 Windows 10 创建了一个示例项目;
expo init test
cd test
npm start

一切运行良好,我可以在手机上看到我的应用程序,而且我的package.json文件看起来也很正常;

{
  "name": "empty-project-template",
  "main": "node_modules/expo/AppEntry.js",
  "private": true,
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject"
  },
  "dependencies": {
    "expo": "^30.0.1",
    "react": "16.3.1",
    "react-native": "https://github.com/expo/react-native/archive/sdk-30.0.0.tar.gz",
  }
}

但如果我想安装像“uuid”这样的包;

npm install uuid

安装包没有问题,然后我写了以下内容:
   npm start

This command requires Expo CLI.
Do you want to install it globally [Y/n]?

我按下了“Y”键,但它显示出错误信息。
This command requires Expo CLI.
Do you want to install it globally [Y/n]? y
Installing the package 'expo-cli'...
events.js:183
      throw er; // Unhandled 'error' event
      ^

Error: spawn npm ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
    at onErrorNT (internal/child_process.js:362:16)
    at _combinedTickCallback (internal/process/next_tick.js:139:11)
    at process._tickCallback (internal/process/next_tick.js:181:9)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! empty-project-template@ start: `expo start`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the empty-project-template@ start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

包名并不重要,如果我安装任何一个包并运行npm start,我的项目就会崩溃,我用yarn测试了这一步骤,结果和npm一样,我错在哪里了?

11个回答

6

对于那些遇到这个问题的人,

  1. 导航到代码库的 node_modules > .bin 目录
  2. 在该目录中找到 expo 和 expo.cmd
  3. 将其重命名为任何名称。

你就可以继续了。


3
解决方法就是使用 expo-cli start 命令,不要使用 npm start 或者 yarn start 命令。这样现在就可以正常运行了。
因此,如果您想创建一个没有问题的 Expo React Native 应用程序,步骤如下:
  • expo-cli init [project-name]
  • cd [project-name]
  • 如果需要,安装任何包 => npm install packageyarn add package
  • expo-cli start ( 不要使用 npm startyarn start )
  • 完成

3

对我来说,直接运行expo start即可。似乎npm还不知道存在expo-cli。


1

0

我不知道你正在使用哪个版本的Node.js。 但是你可以使用这个版本的Node.js 12.10.0。这可以解决你的问题。


0

我也遇到了同样的问题。在我的情况下,我已经在Expo中运行了另一个应用程序,并在另一个窗口中使用Expo创建了一个新的应用程序(认为这不应该是问题)。虽然我在启动现有应用程序时没有任何问题,但对于我的新应用程序,我收到了此错误:expo start。因此,我的机器上安装的expo客户端或节点版本没有问题。可能存在节点模块安装问题。

所以,我只是退出了正在运行的App CLI并重新创建了一个新的App。按照设置开发环境提供的步骤进行操作。

现在它完美地工作了。


0

看起来 expo-cli 没有正确安装。 请尝试重新安装:

npm install -g expo-cli

你可能需要以管理员身份启动命令提示符才能运行该命令。

你还需要在计算机上安装 Node.js(版本 6 或更高版本)。


我已经尝试过多次,而且我的版本也更新,但如果我安装一个新的软件包它就又丢失了。唯一的解决方法是 expo init new-project ,但如果使用 npm install 安装任何软件包后,它还会再次出现问题。 - redkont

0

我已将版本降级为"expo": "^30.0.0"。它解决了同样的问题。


我尝试过了,但对我不起作用。我在Linux(opensuse thumbleweed)上尝试了同样的问题,现在我可以在Linux上使用最新版本的expoexpo-cli而没有任何问题,但是在我的Win 10机器上却不能做到同样的事情。目前我会使用Linux,直到找到Win 10的解决方法。 - redkont

0

尝试使用以下命令将expo-cli添加到开发依赖项中:

yarn add expo-cli --dev

0
如果你使用的是Linux系统,请尝试使用以下命令全局安装expo-cli:
sudo npm install -g expo-cli

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