我编写了一个简单的应用程序,并在heroku上提供了它。我在这个项目中加入了中微子。当地的纱线,它是工作的,但现在我有问题的服务,在heroku。问题是我如何在heroku上安装中微子?
这是我的package.json
{
"name": "portfolio",
"version": "0.1.0",
"private": true,
"scripts": {
"start": "neutrino start",
"build": "neutrino build"
},
"devDependencies": {
},
"dependencies": {
"neutrino-middleware-sass": "^0.0.1",
"react": "^16.0.0",
"react-burger-menu": "^2.1.10",
"react-dom": "^16.0.0",
"react-hot-loader": "3.0.0-beta.6",
"react-router-dom": "^4.2.2",
"react-typist": "^2.0.4",
"neutrino": "^7.3.1",
"neutrino-preset-react": "^7.3.1"
}
}这是heroku的日志
2017-11-07T20:24:27.718248+00:00 app[web.1]: npm ERR! spawn ENOENT
2017-11-07T20:24:27.718349+00:00 app[web.1]: npm ERR!
2017-11-07T20:24:27.718449+00:00 app[web.1]: npm ERR! Failed at the portfolio@0.1.0 start script 'neutrino start'.
2017-11-07T20:24:27.718537+00:00 app[web.1]: npm ERR! Make sure you have the latest version of node.js and npm installed.
2017-11-07T20:24:27.718625+00:00 app[web.1]: npm ERR! If you do, this is most likely a problem with the portfolio package,
2017-11-07T20:24:27.718869+00:00 app[web.1]: npm ERR! not with npm itself.
2017-11-07T20:24:27.718943+00:00 app[web.1]: npm ERR! Tell the author that this fails on your system:
2017-11-07T20:24:27.719014+00:00 app[web.1]: npm ERR! neutrino start
2017-11-07T20:24:27.719102+00:00 app[web.1]: npm ERR! You can get information on how to open an issue for this project with:
2017-11-07T20:24:27.719214+00:00 app[web.1]: npm ERR! npm bugs portfolio
2017-11-07T20:24:27.719288+00:00 app[web.1]: npm ERR! Or if that isn't available, you can get their info via:
2017-11-07T20:24:27.719372+00:00 app[web.1]: npm ERR! npm owner ls portfolio
2017-11-07T20:24:27.719460+00:00 app[web.1]: npm ERR! There is likely additional logging output above.
2017-11-07T20:24:27.722711+00:00 app[web.1]:
2017-11-07T20:24:27.722863+00:00 app[web.1]: npm ERR! Please include the following file with any support request:
2017-11-07T20:24:27.722931+00:00 app[web.1]: npm ERR! /app/npm-debug.log
2017-11-07T20:24:27.785333+00:00 heroku[web.1]: Process exited with status 1
2017-11-07T20:24:27.797858+00:00 heroku[web.1]: State changed from starting to crashed
2017-11-07T20:24:27.800281+00:00 heroku[web.1]: State changed from crashed to starting
2017-11-07T20:24:36.861424+00:00 heroku[web.1]: Starting process with command `npm start`
2017-11-07T20:24:39.981092+00:00 app[web.1]:
2017-11-07T20:24:39.981104+00:00 app[web.1]: > portfolio@0.1.0 start /app
2017-11-07T20:24:39.981106+00:00 app[web.1]:
2017-11-07T20:24:39.981105+00:00 app[web.1]: > neutrino start
2017-11-07T20:24:39.994350+00:00 app[web.1]:
2017-11-07T20:24:39.987770+00:00 app[web.1]: sh: 1: neutrino: not found
2017-11-07T20:24:40.005120+00:00 app[web.1]: npm ERR! Linux 3.13.0-133-generic
2017-11-07T20:24:40.005428+00:00 app[web.1]: npm ERR! argv "/app/.heroku/node/bin/node" "/app/.heroku/node/bin/npm" "start"
2017-11-07T20:24:40.005665+00:00 app[web.1]: npm ERR! node v6.12.0发布于 2017-11-07 23:00:12
首先,如果您要将静态web应用程序或单页应用程序部署到Heroku,则需要确保您的Heroku应用程序使用的是nodejs和静态构建包。您可以检查您正在使用的构建包:
heroku buildpacks它输出的内容如下:
❯ heroku buildpacks
=== your-app Buildpack URLs
1. heroku/nodejs
2. https://github.com/hone/heroku-buildpack-static如果没有设置这些buildpack,则可以使用以下方法完成:
heroku buildpacks:add heroku/nodejs
heroku buildpacks:add https://github.com/hone/heroku-buildpack-static要配置静态站点,请根据static.json上的文档将一个https://github.com/heroku/heroku-buildpack-static文件放到项目的根目录中。首先,如果您正在构建一个带有HTML5路由的页面应用程序(例如,react路由器),您可以从以下几个方面开始:
{
"root": "build",
"clean_urls": true,
"routes": {
"/**": "index.html"
}
}接下来,您可以将开发/构建依赖项存储在devDependencies中,并在构建时设置Heroku配置以安装它们:
heroku config:set NPM_CONFIG_PRODUCTION=false当Heroku部署一个Node.js应用程序(中微子就是它)时,它尝试使用package.json中定义的" start“脚本来启动应用程序。这不适用于静态构建的web应用程序,因为我们实际上只想构建文件并让静态构建包提供服务。要覆盖Heroku的功能,可以向heroku-postbuild添加一个package.json脚本:
"scripts": {
"heroku-postbuild": "neutrino build"
}那应该能让你走了!最后,如果您正在从Heroku向您的中微子应用程序中注入环境变量,您将需要确保重新构建该应用程序,因为Heroku在默认情况下不会这样做。这可能需要推动一个空承诺,你的回购,或其他一些重建机制。
https://stackoverflow.com/questions/47167227
复制相似问题