node识别es6的 import/export

起因,原本只想搭建一个es6的环境,进行简单的测试。结果发现 node 8 版本虽然支持 es6,但不支持import/export,这就很尴尬。

解决(很简单)

1.1,使用babel手动搭建

首先,NodeJS 是 CommonJS 规范的实现。这样就可以使用 babel 将es6的语法转为 CommonJS 的语法即可。

  1. 需要如下2个关于 babel 的依赖:

npm install babel-register babel-preset-env --save-dev

  1. 需要 .babelrc 文件

下面 2 种方式都可以

  • 使用转换 ES2015+ 的 env preset
{
  "presets":[
    "env"
  ]
}
复制代码
  • 或直接使用转 CommonJS 的 plugin
{
  "plugins": [
    "transform-es2015-modules-commonjs"
  ]
}
复制代码
  1. babel-register

当引入之后,之后通过 node 引入的带 .es6, .es, .jsx 和 .js 后缀的所有后续文件都将会被 Babel 转译。

require("babel-register");
复制代码

1.2,示例

  1. 文档结构
│  .babelrc
│  package.json
└─src
        index.js
        a.js
        b.js
复制代码
// index.js
require("babel-register")
require('./a')
复制代码
// a.js
import { bar } from './b'
bar()
复制代码
// b.js
export function bar () {
    console.log('b')
}
复制代码

这样 node ./src/index.js 就会输出 b

2,node 9 版本以上,已经支持了 es6的 import/export

查看 Node 官网,现在稳定版还是 8 版本,所以最好还是使用 babel 安全一点。

转载于:https://juejin.im/post/5b87952e6fb9a019e8228aae

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值