写的webpack插件如何适配CommonJs项目和EsModule项目

1、源码用Esmodule

2、使用双模板导出

javascript 复制代码
{
  "name": "my-plugin",
  "main": "./dist/index.cjs",           // CommonJS项目的 入口
  "module": "./dist/index.mjs",         // ESmodule项目的 入口
  "exports": {
    "import": "./dist/index.mjs",       // ESM 
    "require": "./dist/index.cjs",      // CJS
    "default": "./dist/index.cjs"
  },
  "type": "module"                      
} 

main字段是CommonJs项目的入口

module字段是ESmodule项目的入口

ES中的import就会导入exports中的import的入口文件

CommonJs中的require就会导入exports中的require的入口文件

3、选择构建工具并配置就完成了

相关推荐
葡萄城技术团队4 小时前
1000 人协同压测的环境瓶颈排查:CPU 争用与 Wi\-Fi
前端
2301_780789664 小时前
跨平台适配!SDK 游戏盾兼容全终端游戏场景
java·网络·ddos
学长毕设5 小时前
基于springboot的食品仓库管理系统
java·spring boot·后端
excel5 小时前
Marked 与 Markdown 有什么区别?该怎么选?
前端
步行cgn6 小时前
FormHttpMessageConverter 详解:Spring MVC 中表单数据的读写转换器
java·spring·mvc
龙亘川6 小时前
构建城市公共安全数字底座:亘川智城智慧安防系统全维度解读
java·大数据·开发语言·人工智能·信息可视化
金銀銅鐵6 小时前
[Java] 用 CLI 展示 EnumMap 增删键值对时的内部变化
java·源码·ai编程
Da Da 泓6 小时前
五子棋 Web 端测试用例报告
前端·网络·websocket·网络协议·测试用例·项目
秋天的怀念_David6 小时前
第二十二夜 · 数字迷雾
java·程序人生·算法
Raas1007 小时前
AI网关部署方案?从部署到上线全流程
java·开发语言·人工智能·gateway·ai网关·企业级ai网关·企业级ai产品