眾所周知,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