CommonJS 和 ECMAScript 转换

发布时间 2023-09-07 19:07:43作者: 这么拼都不秃

CommonJS 和 ECMAScript

前言:在完成一个加密工具的过程中,本来只想使用 commonjs 语法完成该功能,但是在使用 chalk 的时候发现 chalk 是通过 ES 模块导出的,无法使用 require 引入(当然也有一些方法,可以使用 bable 去转化,但是本人想实现使用 es 语法,目前还没写多少内容,以下是转化注意的地方)

1. 将自己工具函数的导出方式进行改变

// 起初都是使用
module.exports = { key: value };
// 方式导出,现在改成
export { a, b, c };

2. 所有的导入语法进行修改

// 将 require 改为 import 既可例如
const path = require("path");
import path from "path";

3. 以前使用的 nodeq 全局变量 dirname 需要替换

// 原先代码可以直接使用
// 修改后
import path from "path";
import { fileURLToPath } from "url";
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// 使用__dirname 即可

4. 去 package.json 中添加 type 字段

{
  //...
  "type": "module"
}