Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 未找到Babel节点-Heroku部署_Node.js_Reactjs_Mongodb_Heroku_Babeljs - Fatal编程技术网

Node.js 未找到Babel节点-Heroku部署

Node.js 未找到Babel节点-Heroku部署,node.js,reactjs,mongodb,heroku,babeljs,Node.js,Reactjs,Mongodb,Heroku,Babeljs,我正在尝试部署一个简单的电子商务网站,它有Reactjs、Node、Express和MongoDB。我按照教程将其部署到heroku。我用过巴贝尔,但在教程中没有用。我知道我们不使用巴别塔(babel)进行生产,只用于开发目的,但我不确定我将如何部署我的网站 服务器在本地运行良好,Heroku构建也成功。但当我访问heroku上部署的应用程序时,它会显示应用程序错误 以下是Heroku的日志: 2020-06-29T16:04:44.812179+00:00 heroku[web.1]: Sta

我正在尝试部署一个简单的电子商务网站,它有Reactjs、Node、Express和MongoDB。我按照教程将其部署到heroku。我用过巴贝尔,但在教程中没有用。我知道我们不使用巴别塔(babel)进行生产,只用于开发目的,但我不确定我将如何部署我的网站

服务器在本地运行良好,Heroku构建也成功。但当我访问heroku上部署的应用程序时,它会显示应用程序错误

以下是Heroku的日志:

2020-06-29T16:04:44.812179+00:00 heroku[web.1]: Starting process with command `npm start`
2020-06-29T16:04:48.072669+00:00 app[web.1]: 
2020-06-29T16:04:48.072690+00:00 app[web.1]: > e-commerce-site@1.0.0 start /app
2020-06-29T16:04:48.072691+00:00 app[web.1]: > babel-node backend/server.js
2020-06-29T16:04:48.072691+00:00 app[web.1]: 
2020-06-29T16:04:48.105827+00:00 app[web.1]: sh: 1: babel-node: not found
2020-06-29T16:04:48.110266+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-06-29T16:04:48.111030+00:00 app[web.1]: npm ERR! syscall spawn
2020-06-29T16:04:48.111915+00:00 app[web.1]: npm ERR! file sh
2020-06-29T16:04:48.112482+00:00 app[web.1]: npm ERR! errno ENOENT
2020-06-29T16:04:48.114018+00:00 app[web.1]: npm ERR! e-commerce-site@1.0.0 start: `babel-node backend/server.js`
2020-06-29T16:04:48.114155+00:00 app[web.1]: npm ERR! spawn ENOENT
2020-06-29T16:04:48.114342+00:00 app[web.1]: npm ERR!
2020-06-29T16:04:48.114508+00:00 app[web.1]: npm ERR! Failed at the e-commerce-site@1.0.0 start script.
2020-06-29T16:04:48.114601+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-06-29T16:04:48.133545+00:00 app[web.1]: 
2020-06-29T16:04:48.134148+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2020-06-29T16:04:48.134771+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2020-06- 
29T16_04_48_124Z-debug.log
2020-06-29T16:04:48.213867+00:00 heroku[web.1]: Process exited with status 1
2020-06-29T16:04:48.265610+00:00 heroku[web.1]: State changed from starting to crashed
2020-06-29T16:04:48.268292+00:00 heroku[web.1]: State changed from crashed to starting
2020-06-29T16:04:57.328678+00:00 heroku[web.1]: Starting process with command `npm start`
2020-06-29T16:05:00.299582+00:00 app[web.1]: 
2020-06-29T16:05:00.299595+00:00 app[web.1]: > e-commerce-site@1.0.0 start /app
2020-06-29T16:05:00.299595+00:00 app[web.1]: > babel-node backend/server.js
2020-06-29T16:05:00.299596+00:00 app[web.1]: 
2020-06-29T16:05:00.308802+00:00 app[web.1]: sh: 1: babel-node: not found
2020-06-29T16:05:00.312668+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-06-29T16:05:00.313206+00:00 app[web.1]: npm ERR! syscall spawn
2020-06-29T16:05:00.313637+00:00 app[web.1]: npm ERR! file sh
2020-06-29T16:05:00.314093+00:00 app[web.1]: npm ERR! errno ENOENT
2020-06-29T16:05:00.315953+00:00 app[web.1]: npm ERR! e-commerce-site@1.0.0 start: `babel-node backend/server.js`
2020-06-29T16:05:00.316283+00:00 app[web.1]: npm ERR! spawn ENOENT
2020-06-29T16:05:00.316613+00:00 app[web.1]: npm ERR!
2020-06-29T16:05:00.316974+00:00 app[web.1]: npm ERR! Failed at the e-commerce-site@1.0.0 start script.
2020-06-29T16:05:00.317312+00:00 app[web.1]: npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2020-06-29T16:05:00.344371+00:00 app[web.1]: 
2020-06-29T16:05:00.344828+00:00 app[web.1]: npm ERR! A complete log of this run can be found in:
2020-06-29T16:05:00.345202+00:00 app[web.1]: npm ERR!     /app/.npm/_logs/2020-06-29T16_05_00_319Z-debug.log
2020-06-29T16:05:00.406294+00:00 heroku[web.1]: Process exited with status 1
2020-06-29T16:05:00.466244+00:00 heroku[web.1]: State changed from starting to crashed
文件名:Server.js

export default{
    MONGODB_URL: process.env.MONGODB_URL || "mongodb://localhost/ecommercesite",
    JWT_SECRET: process.env.JWT_SECRET || "somethingsecret"
}
我拥有MongoDB所有连接的文件:

import express from "express";
import data from "./data";
import dotenv from "dotenv";
import config from "./config";
import mongoose from "mongoose";
import userRoute from "./routes/userRoute";
import productRoute from "./routes/productRoute";
import bodyParser from "body-parser";

dotenv.config();
const mongodbUrl = config.MONGODB_URL;
const PORT = process.env.PORT || 5000;

mongoose.connect(mongodbUrl , {
    useNewUrlParser : true,
    useUnifiedTopology: true,
    useCreateIndex: true
}).catch(error => console.log(error.reason));


const app = express();
app.use(bodyParser.json());

app.use("/api/users" , userRoute);
app.use("/api/products" , productRoute);

if (process.env.NODE_ENV === "production"){
    app.use(express.static("./frontend/build"));
}
app.listen(PORT , console.log(`Server started at ${PORT}`));
文件名:config.js

export default{
    MONGODB_URL: process.env.MONGODB_URL || "mongodb://localhost/ecommercesite",
    JWT_SECRET: process.env.JWT_SECRET || "somethingsecret"
}
文件名:Package.json

{
  "name": "e-commerce-site",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    
    "build" : "cd frontend && npm run build",
    "install-client" : "cd frontend && npm install",
    "heroku-postbuild" : "npm run install-client && npm run build",
    "start": "babel-node backend/server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "axios": "^0.19.2",
    "body-parser": "^1.19.0",
    "dotenv": "^8.2.0",
    "express": "^4.17.1",
    "jsonwebtoken": "^8.5.1",
    "mongoose": "^5.9.16"
  },
  "devDependencies": {
    "@babel/cli": "^7.10.1",
    "@babel/core": "^7.10.1",
    "@babel/node": "^7.10.1",
    "@babel/preset-env": "^7.10.1",
    "nodemon": "^2.0.4"
  }
}

如果您将
@babel/node
作为依赖项而不是依赖项安装,它是否有效?也就是说,将
@babel/node
devDependencies
移动到
dependencies
,运行
npm i
并推送更改后的package.json和package lock.json。我完全按照您所说的那样尝试了,并且面临相同的错误。添加了几行日志2020-06-29T16:36:48.000000+00:00应用程序[api]:构建成功2020-06-29T16:37:02.582334+00:00 heroku[web.1]:使用命令
npm start启动进程
2020-06-29T16:37:05.114621+00:00应用程序[web.1]:错误:找不到模块“@babel/core”,听起来好像是另一个错误!将所有的
@babel
错误移到
依赖项中。我也试过了,但仍然不起作用。之后的错误是什么?