如何在Node.js中使用“导入”?

问题描述 投票:0回答:2

我试图将使用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文件夹用于前端。

提前感谢!

javascript node.js reactjs heroku babel
2个回答
1
投票

如果需要,您可以只使用require。以下是有关为什么有两种方式导入文件的详细信息。 The difference between "require(x)" and "import x"


0
投票

如果您的主要问题仅在于import关键字,则可以继续并在下面替换此行

import express from "express";

回到下面的一个

const express = require("express");
© www.soinside.com 2019 - 2024. All rights reserved.