Estoy implementando mi aplicación node.js en heroku pero cuando ejecuto mi aplicación me muestra un error de aplicación y cuando reviso mi archivo de registros encontré NPM_CONFIG_LOGLEVEL=error
Mi archivo package.json es:
{ "name": "wework-1", "version": "1.0.0", "description": "We Work Meteor, a job board and developer directory for Meteor specific work https://www.weworkmeteor.com", "main": "", "engines": { "node": "= 4.5.0", "npm": "= 3.9.6" }, "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "lint": "eslint .", "pretest": "npm run lint --silent" }, "repository": { "type": "git", "url": "git+https://github.com/rohitchaudhary701/wework-1.git" } }Mi archivo de registros es:
-----> Node.js app detected -----> Creating runtime environment NPM_CONFIG_LOGLEVEL=error NPM_CONFIG_PRODUCTION=true NODE_VERBOSE=false NODE_ENV=production NODE_MODULES_CACHE=true -----> Installing binaries engines.node (package.json): = 4.5.0 engines.npm (package.json): = 3.9.6 Resolving node version = 4.5.0 via semver.io... Downloading and installing node 4.5.0... Resolving npm version = 3.9.6 via semver.io... Downloading and installing npm 3.9.6 (replacing version 2.15.9)... -----> Restoring cache Loading 2 from cacheDirectories (default): - node_modules - bower_components (not cached - skipping) -----> Building dependencies Installing node modules (package.json) -----> Caching build Clearing previous node cache Saving 2 cacheDirectories (default): - node_modules - bower_components (nothing to cache) -----> Build succeeded! ! This app may not specify any way to start a node process https://devcenter.heroku.com/articles/nodejs-support#default-web-process-type -----> Discovering process types Procfile declares types -> (none) Default types for buildpack -> web -----> Compressing... Done: 12.7M -----> Launching... Released v6 https://whispering-cliffs-66861.herokuapp.com/ deployed to HerokuLa URL de la aplicación es https://whispering-cliffs-66861.herokuapp.com/
De sus registros:
Es posible que esta aplicación no especifique ninguna forma de iniciar un proceso de nodo
Probablemente necesites hacer dos cosas:
start en package.jsonprocess.env.PORTEchale un vistazo a éste ejemplo:
Consulte package.json y el script de start :
"scripts": { "start": "node server.js" },Ver:
Y vea la inicialización del número de puerto:
const port = process.env.PORT || 3338; // ... server.listen(port, () => { console.log(`Listening on http://localhost:${port}/`); });Ver:
Si desea una implementación más sencilla con el botón Implementar en Heroku, es posible que también necesite un archivo app.json :
Pero para las implementaciones manuales, solo debe necesitar un script de start en package.json para que su aplicación pueda iniciarse con npm start y su aplicación necesita tomar el puerto para escuchar desde la variable de entorno PORT .
Puede probarlo ejecutándose localmente:
PORT=2255 npm start y asegurándose de que puede acceder a su aplicación en http://localhost:2255/ para este y cualquier otro puerto que especifique. Si no puede iniciar su aplicación con el comando anterior, es poco probable que su aplicación se ejecute en Heroku. También podría tener un Procfile presente, pero sin él, al menos debería hacer que npm start funcionar, consulte:
Parece que está intentando implementar una aplicación Meteor en Heroku.
Heroku no está tan integrado con Meteor como lo está Galaxy, o como solía estarlo Modulus/Xervo.
Heroku detectará una aplicación similar a un nodo, pero primero deberá convertir su aplicación Meteor en una aplicación Node.js , generalmente usando el comando de meteor build y cargando el paquete de servidor resultante, o usando algo de MUP.
Una alternativa simple es usar un Buildpack de terceros, que hará la conversión por usted una vez que cargue su aplicación Meteor en Heroku.
Encontrará muchos recursos para eso en el enlace anterior o aquí en SO.
Ver por ejemplo: Errores de Heroku con Meteor 1.4.1.1
Nota: la línea NPM_CONFIG_LOGLEVEL=error es una configuración , no un error real...
¿Cómo se ve tu Procfile? Asegúrese de no tener web: node app.js en el Procfile. Tuve el mismo error y no necesitaba usar Procfile. Una vez que lo quité, comenzó a funcionar.