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

相关推荐
Hi_kenyon1 分钟前
快速入门VUE与JS(二)--getter函数(取值器)与setter(存值器)
前端·javascript·vue.js
海云前端15 分钟前
前端面试加分技巧:文本省略 + Tooltip 优雅实现,附可直接复用代码(求职党必看)
前端
在西安放羊的牛油果6 分钟前
浅谈 storeToRefs
前端·typescript·vuex
triumph_passion6 分钟前
Zustand 从入门到精通:我的工程实践笔记
前端·性能优化
pusheng20256 分钟前
双气联防技术在下一代储能系统安全预警中的应用
前端·安全
Chan167 分钟前
微服务 - Higress网关
java·spring boot·微服务·云原生·面试·架构·intellij-idea
C_心欲无痕7 分钟前
ts - 交叉类型
前端·git·typescript
彭涛3618 分钟前
Blog-SSR 系统操作手册(v1.0.0)
前端
二哈喇子!9 分钟前
JavaSE 与 JavaEE 知识点整合
java·servlet·tomcat
全栈前端老曹13 分钟前
【前端路由】React Router 权限路由控制 - 登录验证、私有路由封装、高阶组件实现路由守卫
前端·javascript·react.js·前端框架·react-router·前端路由·权限路由