众所周知,nodejs支持的模块化规范是Commonjs,不支持ES6的module。如何让node程序像es6一样import库呢?
1、安装babel
npm install @babel/core @babel/register @babel/preset-env --save-dev
2、原node代码(如index.js)
// let only = require('only')
// 以import形式引入only包
import only from 'only'
var obj = {
name: 'tobi',
last: 'holowaychuk',
email: 'tobi@learnboost.com',
_id: '12345'
};
// 第二个参数是字符串形式的属性集合
var user = only(obj, 'name last email');
// 第二个参数是数组形式的属性集合
var user2 = only(obj, ['name', 'last']);
console.log(user);
console.log(user2);
注意上述代码是以import形式引入的。
3、增加入口文件
// Transpile all code following this line with babel and use '@babel/preset-env' (aka ES6) preset.
require("@babel/register")({
presets: ["@babel/preset-env"]
});
// Import the rest of our application.
module.exports = require('./index.js')
4、执行入口文件即可
node server.js