首页 > 解决方案 > 如何在 Node.js 中使用“导入”?

问题描述

我尝试将使用 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)

我google了一下,据说Node.js不支持ES6语法,我可以用babel. 但我不知道如何配置它。

以下是我的文件:

.babelrc.json:

{
  "presets": [
    [
      "@babel/preset-env",
      {
        "targets": {
          "node": "current"
        }
      }
    ]
  ]
}

包.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文件夹用于前端。

提前致谢!

标签: javascriptnode.jsreactjsherokubabeljs

解决方案


如果你愿意,你可以只使用 require 。以下是有关为什么有两种引入文件的方法的详细信息。“require(x)”和“import x”的区别


推荐阅读