npm 错误!缺少脚本:将反应应用程序部署到heroku时构建

Posted

技术标签:

【中文标题】npm 错误!缺少脚本:将反应应用程序部署到heroku时构建【英文标题】:npm ERR! missing script: build when deploying react app to heroku 【发布时间】:2018-09-04 22:00:55 【问题描述】:

我制作了一些小型 React Web 应用程序,我正在尝试将它们部署到 heroku。我通过 YouTube 视频找到了这个https://github.com/mars/create-react-app-buildpack,据说这是/曾经是一种简单的部署方法。作者列出了几个步骤(前两个不适用):

    git 初始化 heroku 创建 $APP_NAME --buildpack https://github.com/mars/create-react-app-buildpack.git git 添加。 git commit -m "Start with create-react-app" git push heroku master heroku 打开

进入 git push heroku master 后,我在控制台中收到一条错误消息:

npm ERR! missing script: build
remote:
remote: npm ERR! A complete log of this run can be found in:
remote: npm ERR!     /app/.npm/_logs/2018-03-26T16_55_19_748Z-debug.log
remote:  !     Push rejected, failed to compile React.js (create-react-app) multi app.
remote:
remote:  !     Push failed
remote: Verifying deploy...
remote:
remote: !       Push rejected to my-simple-react-weather-app.
remote:
To https://git.heroku.com/my-simple-react-weather-app.git
 ! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'https://git.heroku.com/my-simple-react-weather-app.git'

我进行了一些搜索,并为我的 package.json 文件找到了一些构建脚本,但它们似乎都不起作用(""build": "webpack --config webpack.conf.js"")

这是我的 package.json:


  "name": "redux-simple-starter",
  "version": "1.0.0",
  "description": "Simple React YouTube App",
  "main": "index.js",
  "scripts": 
    "start": "node ./node_modules/webpack-dev-server/bin/webpack-dev-server.js",
    "test": "mocha --compilers js:babel-core/register --require ./test/test_helper.js --recursive ./test",
    "test:watch": "npm run test -- --watch"
  ,
  "author": "",
  "license": "ISC",
  "devDependencies": 
    "babel-core": "^6.2.1",
    "babel-loader": "^6.2.0",
    "babel-preset-es2015": "^6.1.18",
    "babel-preset-react": "^6.1.18",
    "chai": "^3.5.0",
    "chai-jquery": "^2.0.0",
    "jquery": "^2.2.1",
    "jsdom": "^8.1.0",
    "mocha": "^2.4.5",
    "react-addons-test-utils": "^0.14.7",
    "webpack": "^1.12.9",
    "webpack-dev-server": "^1.14.0"
  ,
  "dependencies": 
    "babel-preset-stage-1": "^6.1.18",
    "lodash": "^3.10.1",
    "react": "^0.14.3",
    "react-dom": "^0.14.3",
    "react-redux": "4.3.0",
    "react-router": "^2.0.1",
    "redux": "^3.0.4",
    "youtube-api-search": "0.0.5"
  

有人可以帮我吗?我已经登录了我的 heroku 帐户。有没有比我在这里做的更简单的方法?

【问题讨论】:

你能分享你的package.json吗? 我已经更新了我原来的帖子。谢谢! 【参考方案1】:

如果你提供一个 git repo,它可能有助于快速解决问题,但现在请确保你已安装

反应脚本

npm i react-scripts --save-dev

确保 -dev 存在,以便它在服务器启动之前运行 for more details

另外,让你的客户端(react app)package.json 包含相同的内容

"scripts": 
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"

确保您使用正确的构建包也非常重要 如果它唯一的反应应用程序没有 node.js for more details

heroku create $APP_NAME --buildpack mars/create-react-app

但如果你使用 node.js 构建双重

heroku buildpacks:clear

并考虑按照此处的说明进行操作How to use create-react-app with a custom Node server on Heroku

【讨论】:

【参考方案2】:

您提到"build": " webpack --config webpack.conf.js" 不起作用。我猜这就是你从package.json 中省略它的原因。这是解决错误消息所需要的。一旦你让这个脚本在你的package.json 中工作,那么一切都应该很好。

查看启动脚本,您可能需要通过在 .bin 目录中指定它来运行 webpack。我不确定您使用的是什么版本的节点。

scripts: 
    ...
    "build": "./node_modules/.bin/webpack --config webpack.conf.js",
    ...

【讨论】:

【参考方案3】:

试试这个:

"build": "webpack"

这是我从那里得到的。 https://webpack.js.org/guides/getting-started/

【讨论】:

以上是关于npm 错误!缺少脚本:将反应应用程序部署到heroku时构建的主要内容,如果未能解决你的问题,请参考以下文章

如何修复 npm ERR!缺少脚本:从反应开始

反应:缺少脚本:开始

Discord.js 机器人 | Heroku 部署错误 | npm 错误!缺少脚本:开始

将节点应用程序部署到 Azure 应用程序服务时 .bin 文件夹中缺少文件

错误的ERR!缺少脚本:在将react应用程序部署到heroku时构建

npm 错误!缺少脚本:构建:通用