node.js的模块系统
一、使用ECMAScript Modules标准规范
ECMAScript Modules (ESM) 是 JavaScript 官方的标准模块系统。
使用方式
- 推荐使用
.mjs
后缀 - 配置
package.json
{ 'type': 'module' }
默认导出/导入
export default function greet(name) {
return `Hello, ${name}!`;
}
// 或者
const greet = function(name) {
return `Hello, ${name}!`;
};
export default greet;
import greet from './myModule.mjs'; # greet可更换成任意名字
console.log(greet("World"));
命名导出/导入
export const PI = 3.14159;
export function add(a, b) {
return a + b;
}
export class MyClass {
constructor(name) {
this.name = name;
}
}
// 或者
const PI = 3.14159;
function add(a, b) {
return a + b;
}
class MyClass {
constructor(name) {
this.name = name;
}
}
export {PI, add, MyClass}
import { PI, add, MyClass } from './myModule.mjs';
console.log(PI);
console.log(add(2, 3));
const myInstance = new MyClass("Example");
console.log(myInstance.name);
命名导出/导入
使用别名
let veryLongVariableName = 42;
export { veryLongVariableName as answer };
import { answer as aa } from './myModule.mjs';
命名导入
使用命名空间
import * as myModule from './myModule.mjs';
console.log(myModule.PI);
console.log(myModule.add(2, 3));
二、使用CommonJS规范
CommonJS规范是node.js的默认方式。
导出
const greet = function(name) {
return `Hello, ${name}!`;
};
module.exports.greet = greet;
// 或者
exports.greet = greet;
导入
const mod = require("./myModule.js");
console.log(mod.greet);
分类:
标签:
nodejs
版权申明
本文系作者 @benojan 原创发布在node.js的模块系统。未经许可,禁止转载。
评论
-- 评论已关闭 --
全部评论