[译文] 如何在 Node.js 中使用 ES6 语法的 import/export

4,143 阅读1分钟

原文链接:How To Enable ES6 Imports in Node.JS

目前的 Node.js 并不支持 ES6 语法的 import 功能,但我们可以使用 Babel (语法转换器)来实现。

只需要在入口文件处导入所需的 Babel 依赖即可,无需打包编译成新的文件。

以下是案例

1、安装依赖包

基于 Express

> npm init
> npm install express --save
> npm install babel-register babel-preset-env --save-dev

2、 原始 server.js 的代码

const express = require('express')
const app = express()

// 路由
app.get('/', function (req, res) {
  res.send('hello world')
})

app.listen(3000, () => console.log('浏览器输入http://localhost:3000'))

启动 server.js,运行服务: node server.js

在浏览器中,输入 http://localhost:3000 ,查看运行结果。

3、转换 server.js 的代码

用 ES6 的 import 取代 require(...) , export 取代 module.exports

路由配置文件: router.js

import express from 'express'

const router = express.Router() // 路由
// 配置路由
router.get('/', function (req, res) {
  res.send('hello world')
})

export default router

server端文件:server.js

import express from 'express'
import router from './router' //引入路由配置文件

const app = express()
// 使用路由
app.use('', router)

app.listen(3000, () => console.log('浏览器输入http://localhost:3000'))

4、添加 stars.js 文件

将以下代码写入新建的 stars.js 文件中,唯有此处无法使用 import 和 export。

require('babel-register')({
    presets: [ 'env' ]
})

// 导入初始的启动文件
module.exports = require('./server.js')

启动 start.js,运行服务:node start.js


补充

1、GitHub 代码