写的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、选择构建工具并配置就完成了

相关推荐
mango_mangojuice8 分钟前
Linux学习笔记(make/Makefile)1.23
java·linux·前端·笔记·学习
程序员侠客行12 分钟前
Mybatis连接池实现及池化模式
java·后端·架构·mybatis
时艰.15 分钟前
Java 并发编程 — 并发容器 + CPU 缓存 + Disruptor
java·开发语言·缓存
丶小鱼丶20 分钟前
并发编程之【优雅地结束线程的执行】
java
市场部需要一个软件开发岗位25 分钟前
JAVA开发常见安全问题:Cookie 中明文存储用户名、密码
android·java·安全
忆~遂愿29 分钟前
GE 引擎进阶:依赖图的原子性管理与异构算子协作调度
java·开发语言·人工智能
Days205031 分钟前
简单处理接口返回400条数据本地数据分页加载
前端
MZ_ZXD00134 分钟前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
PP东36 分钟前
Flowable学习(二)——Flowable概念学习
java·后端·学习·flowable
Novlan138 分钟前
@tdesign/uniapp 图标瘦身
前端