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时构建的主要内容,如果未能解决你的问题,请参考以下文章
Discord.js 机器人 | Heroku 部署错误 | npm 错误!缺少脚本:开始
将节点应用程序部署到 Azure 应用程序服务时 .bin 文件夹中缺少文件