一、使用ECMAScript Modules标准规范

ECMAScript Modules (ESM) 是 JavaScript 官方的标准模块系统。

使用方式

  1. 推荐使用.mjs后缀
  2. 配置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

评论

-- 评论已关闭 --

全部评论