【问题标题】:Adding a package immediately after created by create-react-app is not working由 create-react-app 创建后立即添加包不起作用
【发布时间】:2017-12-05 06:24:45
【问题描述】:

我对反应很陌生(一天前开始)。我使用 create-react-app 命令行来创建应用程序。我按以下顺序尝试了

  • create-react-app my-app
  • npm 开始

此时应用程序运行良好。然后我做了以下

  • npm install youtube-api-search
  • npm 开始

现在我收到此错误

my-app@0.1.0 开始 /Users/shanmugharajk/Code/udemy/my-app 反应脚本开始

sh: react-scripts: command not found npm ERR!文件 sh npm 错误!代码 生命周期 npm 错误! errno ENOENT npm 错误!系统调用产生 npm 错误! my-app@0.1.0 开始:react-scripts start npm ERR!生成 ENOENT npm 呃! npm 错误!在 my-app@0.1.0 启动脚本中失败。 npm 错误!这 可能不是 npm 的问题。可能有额外的日志记录 上面的输出。

每次我尝试安装的任何软件包都会发生这种情况。

我认为我注意到的是当我跑步时

  • npm install youtube-api-search 或任何它总是删除一些包的 pckage。我在安装任何软件包时收到的消息是

npm WARN 注册表使用来自https://registry.npmjs.org/ 的陈旧数据 因为主机不可访问——你离线了吗? npm 警告注册表 https://registry.npmjs.org/ 的意外警告:杂项 警告 ENOTFOUND:对https://registry.npmjs.org/redux 的请求失败, 原因:getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443 npm WARN registry 使用来自的陈旧包数据 https://registry.npmjs.org/ 由于期间请求错误 重新验证。 npm WARN 轻轻地Rm 不删除 /Users/shanmugharajk/Code/udemy/my-app/node_modules/html-minifier/node_modules/.bin/uglifyjs 因为它不是由 /Users/shanmugharajk/Code/udemy/my-app/node_modules/html-minifier/node_modules/uglify-js npm WARN 轻轻地Rm 不删除 /Users/shanmugharajk/Code/udemy/my-app/node_modules/espree/node_modules/.bin/acorn 因为它不是由 /Users/shanmugharajk/Code/udemy/my-app/node_modules/espree/node_modules/acorn npm WARN 轻轻地Rm 不删除 /Users/shanmugharajk/Code/udemy/my-app/node_modules/autoprefixer/node_modules/.bin/browserslist 因为它不是由 /Users/shanmugharajk/Code/udemy/my-app/node_modules/autoprefixer/node_modules/browserslist npm notice 创建了一个锁文件作为 package-lock.json。你应该承诺 这个文件。

  • redux@3.7.1 添加了 3 个包,删除了 1142 个包并在 27.043 秒内更新了 3 个包

我无法弄清楚原因。请帮帮我。

【问题讨论】:

    标签: macos reactjs npm create-react-app


    【解决方案1】:

    您使用的是 npm 5。目前它有很多问题。

    我建议降级到 npm 4 并重试:

    npm install -g npm@4
    
    rm -rf node_modules
    rm package-lock.json
    npm install
    

    如果它不能帮助检查您的互联网连接。 您的网络似乎存在问题:

    getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443

    【讨论】:

    • 是的,就是这样。谢谢。
    【解决方案2】:

    我得到了答案,因为我的机器上都安装了 yarn 和 npm,所以 create-react-app 使用 yarn 并安装所有依赖项并创建 yarn.lock 文件。

    所以现在当我运行 npm install 时,它会查找 package.lock.json 并且它不会在那里。所以它会卸载项目创建时由 yarn 创建的一些包。

    所以我找到的解决方案是执行以下任一操作

    • create-react-app my-app
    • npm 安装
    • 然后安装 npm install -package-

    或者

    • create-react-app my-app
    • yarn install -package-

    这两种方法现在都适用于我。

    【讨论】:

    • 这个方案其实比降级更好
    • 对我不起作用,因为我根本没有安装纱线,但我仍然收到“陈旧包”错误。 @Dan Abramov 的解决方案确实有效。
    【解决方案3】:

    运行 React 应用程序的基本要求是:

     nodejs  
     npm
    

    如果未安装,则通过(专门针对 Ubuntu)安装它

    sudo apt-get update
    sudo apt-get install nodejs
    sudo apt-get install npm
    

    创建 react js 应用:

    npx create-react-app my-DemoApp
    

    一个 之后进入文件夹:

    cd my-DemoApp
    

    您可以看到由此创建的基本文件夹结构

    my-DemoApp
    ├── README.md
    ├── package.json
    ├── .gitignore
    ├── public
    │   ├── favicon.ico
    │   ├── index.html
    │   └── manifest.json
    └── src
        ├── App.css
        ├── App.js
        ├── App.test.js
        ├── index.css
        ├── index.js
        ├── logo.svg
        └── serviceWorker.js
    

    通过运行添加反应应用所需的基本依赖项之后:

    npm install
    

    这将在您的父文件夹中创建名为:node_modules 的新文件夹

    您现在可以通过以下方式运行您的应用程序:

    npm start
    

    现在你已经完成了最基本的设置,你的应用现在已经准备好了。

    您还可以通过npm添加更多应用程序必需的库

    【讨论】:

      【解决方案4】:

      npm install -g npm

      然后再次安装create react app:

      npm install -g create-react-app

      然后再次创建项目

      【讨论】:

        猜你喜欢
        • 2017-02-08
        • 2018-08-21
        • 2020-04-16
        • 1970-01-01
        • 2021-01-03
        • 2018-11-08
        • 1970-01-01
        • 2022-01-21
        • 2021-03-05
        相关资源
        最近更新 更多