我试图将使用React和Node.js开发的项目部署到Heroku,但是在发布git push heroku master
之后,出现错误:
2020-06-05T02:12:18.092681+00:00 app[web.1]: import express from "express";
2020-06-05T02:12:18.092682+00:00 app[web.1]: ^^^^^^^
2020-06-05T02:12:18.092682+00:00 app[web.1]:
2020-06-05T02:12:18.092683+00:00 app[web.1]: SyntaxError: Unexpected identifier
2020-06-05T02:12:18.092683+00:00 app[web.1]: at Module._compile (internal/modules/cjs/loader.js:718:23)
我用谷歌搜索,据说Node.js不支持ES6语法,我可以使用babel
解决它。但是我不知道如何配置它。
下面是我的文件:
。babelrc.json:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
]
}
package.json:
{
"name": "react_e-commerce",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon --watch backend --exec babel-node backend/server.js",
"build": "rimraf dist && babel backend -d dist",
"heroku-postbuild": "npm run build && cd e-commerce && npm install && npm run build"
},
"author": "",
"license": "ISC",
"dependencies": {
"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",
"babel-cli": "^6.26.0",
"mkdirp": "^1.0.4",
"nodemon": "^2.0.4",
"rimraf": "^3.0.2"
},
"engines": {
"node": "12.4.0",
"npm": "6.9.0"
}
}
而且我的整个项目都在https://github.com/powerseed/e-commerce-Reacte-commerce
文件夹用于前端。
提前感谢!
如果需要,您可以只使用require。以下是有关为什么有两种方式导入文件的详细信息。 The difference between "require(x)" and "import x"
如果您的主要问题仅在于import
关键字,则可以继续并在下面替换此行
import express from "express";
回到下面的一个
const express = require("express");