我不知道的 打包工具
CJS、ESM、UMD 与 exports 字段:模块格式的那些坑
你发布了一个 npm 包,TypeScript 编译通过了,本地测试也没问题。用户 require 你的包,报错;换成 import,还是报错。问题出在哪?
打包工具, package.json
你发布了一个 npm 包,TypeScript 编译通过了,本地测试也没问题。用户 require 你的包,报错;换成 import,还是报错。问题出在哪?
Webpack、Rollup、esbuild、Vite、Rolldown——前端打包工具的名单每隔一两年就多一个。直觉上,这像是 JavaScript 社区的造轮子癖。
一个 TypeScript 库项目,用 Webpack 构建需要 30 秒,换成 tsup 只要 0.5 秒。快了 60 倍。这不是玄学,也不是"优化了配置"的结果——背后是语言级别的架构差异。
当页面需要实时展示数据——比如聊天消息、股票行情、协同编辑——HTTP 的请求-响应模型就暴露了根本限制:客户端不问,服务器不答。
用 Webpack 打包一个组件库试试——光处理 ESM、CJS、UMD 三种格式输出,加上 TypeScript 编译、样式文件抽离、外部依赖 externals 配置,webpack.config.js 轻松写到 200 行,还没算上样式隔离和按需加载。