
支持CommonJS 和 ES6模块
coding七月 20, 20211mins
Frontend
一个模块同时要支持 CommonJS 和 ES6 两种格式,也很容易。
如果原始模块是 ES6 格式,那么需要给出一个整体输出接口,比如export default obj,使得 CommonJS 可以用import()进行加载。
如果原始模块是 CommonJS 格式,那么可以加一个包装层。
bash
import cjsModule from '../index.js';export const foo = cjsModule.foo;
上面代码先整体输入 CommonJS 模块,然后再根据需要输出具名接口。
你可以把这个文件的后缀名改为.mjs,或者将它放在一个子目录,再在这个子目录里面放一个单独的package.json文件,指明{ type: "module" }。
另一种做法是在package.json文件的exports字段,指明两种格式模块各自的加载入口。
bash
"exports":{"require": "./index.js","import": "./esm/wrapper.js"}
上面代码指定require()和import,加载该模块会自动切换到不一样的入口文件。
评论
新的评论
上一篇
Unity webgl
基础 WebGL:与浏览器脚本交互 - Unity 手册 从 Unity 脚本调用 JavaScript 函数 使用jslib定义 从 C# 脚本调用这些函数 从 JavaScript 调用 Unity 脚本函数 建议的做法是调用内容中的游戏对象上的方法。如果要从嵌入在项目中的…
下一篇
Guice Account Scope
场景 存在实体A、B,A包含一个和B的一对多关系,即 现在需要假设需要更新A中的某个普通属性,更新完后返回一个包含关联关系B的A对象。 需要注意的是,这里业务场景对A的更新,不是通过设置一个托管状态的A的set方法实现的,而是merge一个页面提交上来的A,因此这个A本身是不包…
