【问题标题】:Removing old versions of create-react-app删除旧版本的 create-react-app
【发布时间】:2021-09-07 07:13:57
【问题描述】:

我想使用create-react-app 脚本创建一个新的反应应用程序。我仍然安装了一个不再受支持的全球版本,所以我卸载了全球版本并尝试创建一个这样的新版本:

npx create-react-app myapp

然后我收到未使用模板的错误,并且我可能使用了旧版本的 create-react-app。我在网上阅读,这确实有效:

npx --ignore-existing create-react-app myapp

我读到这意味着即使我确实卸载了全球版本,我仍然有旧版本。那么如何删除任何其他旧版本的 create-react-app?

【问题讨论】:

  • 你有哪个版本的create-react-app
  • @AbdelrhmanArnos 当用 npx 检查时它告诉 3.1.1,但当用 npm 检查时它告诉 6.13.4
  • 让我解释一下,npx 使用直接在一个命令中执行包,而不是使用 npm 安装 create-react-app 然后创建您的应用程序。
  • @AbdelrhmanArnos 好的。那么为什么创建应用程序仅在将 --ignore-existing 添加到命令时才有效?这意味着我没有正确的版本
  • 因为 npx 忽略 $PATH 或本地项目中的现有二进制文件。这会强制npx 进行临时安装并使用最新版本。

标签: reactjs npm create-react-app npx


【解决方案1】:

以下步骤解决了删除旧版本和创建create-react-app的问题。

1 检查 create-react-app 的版本,使用 npx create-react-app -V

2 使用 npm uninstall -g create-react-appyarn global remove create-react-app 卸载任何全局版本的 create-react-app。

3 查看你机器_npx文件夹的内容,里面的每个文件夹代表一个安装的node版本。使用ls -a /Users/<username>/.npm/_npx/

4 在 package.json 文件中步骤 3 中找到的节点版本中查看 create-react-app 的版本。示例nano /Users/<username>/.npm/_npx/c67e74de0542c87c/package.json

5 删除节点版本文件夹。示例rm -rf /Users/<username>/.npm/_npx/c67e74de0542c87c。当您运行第 6 步时,它将重新创建。或者,您可以重命名文件夹以确保安全。

6 创建反应应用。 npx create-react-app my-app。您应该会看到继续创建应用程序的提示。

【讨论】:

    【解决方案2】:

    npx 是执行包的工具,npm 是主要用于安装包的工具。这意味着如果您想执行一个包而不将其安装在您的计算机上然后启动它,您可以直接使用npx

    全局卸载库
    使用npm uninstall -g create-react-app,然后使用which create-react-app 检查它是否已成功从您的机器中删除。如果仍然存在,请手动删除。

    Linux

    rm -rf /usr/local/bin/create-react-app
    
    • -r -- 尝试删除以每个文件参数为根的文件层次结构,即从指定目录中递归删除子目录和文件。
    • -f -- 尝试在不提示确认的情况下删除文件,无论文件的权限如何

    Windows

    del /f/s/q C:\nodejs\node_modules\npm\bin\create-react-app > nul
    rmdir /s/q C:\nodejs\node_modules\npm\bin\create-react-app
    
    • /f -- 强制删除只读文件。
    • /q -- 启用安静模式。系统不会询问您是否可以删除文件(如果您不使用此功能,系统会询问您文件夹中的任何文件)。
    • /s -- 对所选结构下任何文件夹中的所有文件运行该命令。

    你终于可以使用npx create-react-app myapp的最新版本了。

    【讨论】:

    • windows中which相当于什么?
    【解决方案3】:

    如果以后有人发现这个并且上述解决方案没有帮助,我为自己找到了解决方法。

    我尝试了所有方法,包括似乎什么也没做的 npm uninstall -g create-react-app

    然后我终于从旧安装中找到了这个:C:\Users\<username>\AppData\Roaming\npm\ 其中有 2 个与 react 相关的文件,按照 create-react-app.cmd 或类似名称命名。 删除从该文件夹中与 react 相关的所有内容。

    然后在同一路径下删除这个文件夹:

    C:\Users\<username>\AppData\Roaming\npm\node_modules\create-react-app
    

    如果您的漫游文件夹中没有上述任何内容,那么您的问题出在其他地方。上述文件必须保留在旧的 npm react 安装中,由于某种原因卸载命令没有删除。

    这为我解决了所有问题,我终于能够使用npx create-react-app 创建一个正常运行的项目。

    【讨论】:

      【解决方案4】:

      我在使用 Mojave (10.14.6) 的 MB Pro 2012 上遇到了这个问题,并在推荐的解决方案之后尝试了很多不同的方法

      Please remove any global installs with one of the following commands:
      - npm uninstall -g create-react-app
      - yarn global remove create-react-app
      

      我尝试一次使用nvm 切换到我的每个节点版本并同时运行这两个版本。我尝试卸载我拥有的所有节点版本。我跑了

      which create-react-app
      

      什么也没得到。

      我想看看我是否可以像原始海报一样回避,但是当我跑的时候

      npx --ignore-existing create-react-app myapp
      

      我收到一条错误消息,指出现在已禁用忽略现有选项。

      有些帖子提到了 npm 缓存的问题,所以我跑了

      nvm cache clear
      

      但没有骰子。我正在阅读其他帖子,并看到一些提到使用自制软件卸载节点,所以我开始走这条路:

      brew doctor
      

      然后

      brew update
      

      然后

      brew upgrade
      

      在那之后,我认为它可能安装在 node 的系统版本中并且nvm 对我隐藏了它。所以,为了访问系统节点,我跑了

      nvm deactivate
      

      然后我跑了

      which create-react-app
      

      我又一无所获。最后,我尝试使用node的系统版本实际运行命令

      npx create-react-app my-app
      

      这一次,我得到了:

      Need to install the following packages:
        create-react-app
      Ok to proceed? (y) y
      
      Creating a new React app in /Users/my_username...
      

      这次安装成功了。然后当我打开另一个激活了 nvm 的终端并能够运行时

      npx create-react-app trying-again
      

      终于成功了。

      TLDR;

      nvm deactivate
      npx create-react-app my-app
      # say yes when it asks you to install
      # close that terminal and open another and you should be able to use the command as normal
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-03
        • 1970-01-01
        • 1970-01-01
        • 2022-08-22
        • 1970-01-01
        • 2022-01-19
        • 1970-01-01
        • 2018-01-24
        相关资源
        最近更新 更多