create-react-app 创建后立即添加包不起作用

IT技术 macos reactjs npm create-react-app
2021-05-23 00:23:52

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

  • 创建react应用程序我的应用程序
  • 启动

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

  • npm 安装 youtube-api-search
  • 启动

现在我收到这个错误

my-app@0.1.0 start /Users/shanmugharajk/Code/udemy/my-app react-scripts start

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

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

我注意到的一个想法是当我跑步时

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

npm WARN registry 使用来自https://registry.npmjs.org/ 的陈旧数据, 因为主机无法访问——你离线了吗?npm WARN registry 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 警告不要删除 /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 警告不要删除 /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 警告不要删除 /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 通知创建了一个锁文件为 package-lock.json。你应该提交这个文件。

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

我想不出原因。请帮我。

4个回答

您正在使用 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

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

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

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

  • 创建react应用程序我的应用程序
  • 安装
  • 然后安装 npm install -package-

或者

  • 创建react应用程序我的应用程序
  • 纱线安装-包-

这两种方法现在都对我有用。

运行 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

然后通过运行添加react应用程序所需的基本依赖项:

npm install

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

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

npm start

现在您已完成最基本的设置,您的应用程序现已准备就绪。

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

npm install -g npm

然后再次安装 create react app:

npm install -g create-react-app

然后再次创建项目