我不知道的 打包工具
CJS、ESM、UMD 与 exports 字段:模块格式的那些坑
你发布了一个 npm 包,TypeScript 编译通过了,本地测试也没问题。用户 require 你的包,报错;换成 import,还是报错。问题出在哪?
打包工具, package.json
// 共 5 篇文章
你发布了一个 npm 包,TypeScript 编译通过了,本地测试也没问题。用户 require 你的包,报错;换成 import,还是报错。问题出在哪?
Webpack、Rollup、esbuild、Vite、Rolldown——前端打包工具的名单每隔一两年就多一个。直觉上,这像是 JavaScript 社区的造轮子癖。
一个 TypeScript 库项目,用 Webpack 构建需要 30 秒,换成 tsup 只要 0.5 秒。快了 60 倍。这不是玄学,也不是"优化了配置"的结果——背后是语言级别的架构差异。
用 Webpack 打包一个组件库试试——光处理 ESM、CJS、UMD 三种格式输出,加上 TypeScript 编译、样式文件抽离、外部依赖 externals 配置,webpack.config.js 轻松写到 200 行,还没算上样式隔离和按需加载。
npm init 之后的第一个问题往往不是"写什么业务逻辑",而是"用什么打包工具"。Webpack、Vite、Rollup、esbuild、tsup、Father、unbuild——名单太长了。网上的"工具对比"文章通常罗列一堆功能矩阵,但不回答那个最实际的问题:你的项目到底…