nodejs 用es6写服务端代码
babel-nodenodejscommonjses6

我们在使用Node写服务端代码的时候,一般是用commonJS的写法写的,但是如果考虑到代码复用什么的,还是希望可以用es6的写法去写。但是目前node是不支持import等用法的,所以我们需要用Babel来做转义。
以koa为例:
首先,我们设计工程结构代码都在src文件夹下
image9.png
src下写一个index.js

import Koa from "koa"

const app = new Koa();
app.use(async ctx => {
    ctx.body = 'Hello World';
  });

app.listen(3000);



配置.babelrc来处理es6的转义

{
    "presets": [
      "@babel/preset-env"
    ],
    "plugins": [
      "@babel/plugin-transform-runtime"
    ]
  }

开发的时候,我们用nodemon来监听js文件变更,如果有文件变化,自动重启服务。配置下modemon.json

{
    "watch": [
      "src/**/*.js"
    ],
    "execMap": {
      "js": "babel-node"
    },
    "env": {
      "NODE_ENV": "development"
    }
  }

开发环境下,我们是用babel-node 来做的运行时转义,但是在产线不能这么用,需要用babel-cli转义成commonjs。这里可以直接看完整的package.json

{
  "dependencies": {
    "@babel/cli": "^7.12.1",
    "@babel/core": "^7.12.3",
    "@babel/node": "^7.12.1",
    "@babel/plugin-transform-runtime": "^7.12.1",
    "@babel/preset-env": "^7.12.1",
    "koa": "^2.13.0",
    "nodemon": "^2.0.6"
  },
  "name": "koa2-es6",
  "version": "1.0.0",
  "main": "index.js",
  "devDependencies": {},
  "scripts": {
    "dev": "nodemon src/index.js",
    "build":"babel src --out-dir dist",
    "start":"node dist/index.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": ""
}








暂无评论