【JS逆向-export导出语句】将ES6模块导出语法(浏览器中)转成CommonJS格式(Node.js中)

ES6模块导出语法(浏览器中执行)

javascript 复制代码
// 导出
export {Jt as K, $t as a, Xt as h};

// 导入
import {K as x, a as K, h as q} from "./module.js";

转成CommonJS格式(Node.js中执行)

javascript 复制代码
// 导出
module.exports = {K: Jt, a: $t, h: Xt};

// 导入-方法1
const {K: x, a: K, h: q} = require('./module.js');

// 导入-方法2
// const mymodule = require('./module.js');
// x = mymodule.K
// K = mymodule.a
// q = mymodule.h

其他说明

在ES6模块系统中,export语句中的as关键字用于重命名导出的变量或函数。这个语法允许你指定导出的名称(Kah)和本地变量的名称(Jt$tXt)。这样,在导入模块时,你可以使用导出的名称来引用这些变量或函数。

在CommonJS模块系统中,module.exports对象用于导出模块的内容。这个对象是一个普通的JavaScript对象,其属性可以直接被设置或修改。当你使用module.exports时,你实际上是在定义一个对象,其属性的键是导出时使用的名称,而属性值是要导出的变量或函数。

这就是为什么在转换时,映射关系看起来是相反的:

  • 在ES6模块中,export { Jt as K }表示将本地变量Jt导出为K
  • 在CommonJS中,module.exports = { K: Jt }表示创建一个对象,其键是K,值是变量Jt
    这两种语法结构在表面上看起来相反,但实际上它们都是在做相同的事情:创建一个外部可见的映射,将内部的变量或函数关联到特定的名称上。在ES6模块中,这个映射是在导出时创建的,而在CommonJS中,这个映射是在module.exports对象上设置的。
相关推荐
web打印社区1 分钟前
vue页面打印:printjs实现与进阶方案推荐
前端·javascript·vue.js·electron·html
天若有情6731 小时前
XiangJsonCraft v1.2.0重大更新解读:本地配置优先+全量容错,JSON解耦开发体验再升级
前端·javascript·npm·json·xiangjsoncraft
2501_944525542 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 预算详情页面
android·开发语言·前端·javascript·flutter·ecmascript
摘星编程2 小时前
React Native + OpenHarmony:自定义useFormik表单处理
javascript·react native·react.js
pas1362 小时前
39-mini-vue 实现解析 text 功能
前端·javascript·vue.js
2601_949833393 小时前
flutter_for_openharmony口腔护理app实战+我的实现
开发语言·javascript·flutter
大模型玩家七七4 小时前
混合检索不是折中,而是工程理性
android·java·javascript·数据库·人工智能·深度学习
雨季6664 小时前
Flutter 三端应用实战:OpenHarmony 简易“可展开任务详情卡片”交互模式深度解析
开发语言·前端·javascript·flutter·ui·交互
陶甜也4 小时前
Vue.js 多项目同端口部署实战:上下文路径配置指南
前端·javascript·vue.js·nginx
雨季6664 小时前
Flutter 三端应用实战:OpenHarmony 简易文本字符计数器开发指南
开发语言·javascript·flutter