最新版的
node 支持最新版
ECMAScript 几乎所有特性,但有一个特性却一直到现在都还没有支持,那就是从
ES2015 开始定义的模块化机制。而现在我们很多项目都是用
es6 的模块化规范来写代码的,包括
node 项目,所以,
node 不能运行
es6 模块文件就会很不便。让
node 运行
es6 模块文件的方式有两种:转码
es6 模块为
commonjs 模块
hook
node 的
require 机制,直接让
node 的
require 加载
import/export1. 转码 es6 模块为 commonjs 模块
因为
node 支持几乎所有除
import/export 外的语法,所以我们只需要将
import/export 转码成
require/exports,而不需要转码其他语法。比如下面的项目:
- package.json
- src/
- index.js
- print.js
- ...
# package.json
{
"main": "lib/index.js" # 由工具转码 src 目录下源文件到 lib 目录下
}# src/index.js
import print from './print';
print('index');
export default print;
# src/print.js
export default str => {
console.log('print: ' + str);
};
因为
src 目录下的源文件都是
es6 模块化规范的,
node 并不能直接运行,所以需要转码成
commonjs 规范的代码。这个过程有两个方案:
如果不会单独使用
src 目录下的某个文件,而仅仅是以
src/index.js 为入口文件使用,可以把
src 目录下的文件打包成一个文件到
lib/index.js:这种方式推荐使用工具 rollup









