CommonJS简介

发布时间 2023-09-26 23:02:47作者: KazooTTT

CommonJS简介

Tags: JavaScript, Node.js, commonjs
Published: 2023/09/26

什么是commonjs

commonjs是module的一种类型(规范)

使用场景

CommonJS is mainly used in server-side JS apps with Node, as browsers don't support the use of CommonJS.

CommonJS 主要用于带有 Node 的服务器端 JS 应用程序,因为浏览器不支持使用 CommonJS。

如何使用

package.json

The "type" field defines the module format that Node.js uses for all .js files that have that package.json file as their nearest parent.

"type" 字段定义 Node.js 用于所有将该 package.json 文件作为其最近父级的 .js 文件的模块格式。

在package中不需要显示定义type(type的可选项是commonjs和module),一般是需要用到ESM的时候才去定义module。

package的影响范围是当前文件夹以及子文件夹的所有js文件。(ts会被ts编译器转化为js代码)

语法

导入:require
导出:module.exports

举个例子:

// 导出两个函数
exports.add = function(a, b) {
  return a + b;
};

exports.multiply = function(a, b) {
  return a * b;
};

// 引入 math 模块
var math = require('./math');

// 使用 math 模块中的函数
var sum = math.add(5, 3);
var product = math.multiply(4, 6);

console.log('Sum:', sum);
console.log('Product:', product);


批量导入导出:

// 定义多个实用函数
function add(a, b) {
  return a + b;
}

function subtract(a, b) {
  return a - b;
}

// 将这些函数添加到一个对象中并导出该对象
module.exports = {
  add,
  subtract
};

// main.js

// 引入 utils 模块
var utils = require('./utils');

// 使用 utils 模块中的函数
var sum = utils.add(5, 3);
var difference = utils.subtract(8, 2);

console.log('Sum:', sum);
console.log('Difference:', difference);

参考:

Modules: Packages | Node.js v20.7.0 Documentation

Modules in JavaScript – CommonJS and ESmodules Explained