由 create-react-app 创建后立即添加包不起作用
Posted
技术标签:
【中文标题】由 create-react-app 创建后立即添加包不起作用【英文标题】:Adding a package immediately after created by create-react-app is not working 【发布时间】: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 个包
我无法弄清楚原因。请帮帮我。
【问题讨论】:
【参考方案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
然后再次创建项目
【讨论】:
以上是关于由 create-react-app 创建后立即添加包不起作用的主要内容,如果未能解决你的问题,请参考以下文章
create-react-app 创建的项目执行npm run eject后,运行报错
使用 Flask 为使用 create-react-app 创建的前端提供服务
create-react-app创建项目后,运行npm run eject报错解决方法