JavaScript模块打包工具需按项目类型、环境和依赖选择:Webpack需手动配置loader和resolve;Vite开发用ES模块、构建用Rollup;Esbuild极快但无HMR和代码分割,适合转译和工具链。
JavaScript 模块打包工具不是“选一个装上就能用”,关键看你的项目类型、目标环境和依赖结构——现代项目基本绕不开
、
或
,但它们的启动方式和配置重心完全不同。
Webpack 需要显式配置入口和 loader 才能处理 ES 模块
它默认不识别
/
,也不处理
或
。你得手动加
:
转译新语法(比如可选链、top-level await)
或
处理 TypeScript 类型擦除
若用 CSS 模块,必须配
+
,否则
会报错
常见错误:
——多半是
没配
或
,导致
找不到
。
Vite 开箱即用但只在开发时生效,构建仍走 esbuild + rollup
它用原生 ES 模块跑 dev server,所以
、
这类特性直接可用;但执行
时,实际调用的是
(可通过
调整),不是 Vite 自己打包。
立即学习
“
Java免费学习笔记(深入)
”;
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
别在
里写 webpack 风格的
,Vite 插件 API 不兼容
配置只作用于构建阶段,dev 时
是
proxy
,不能被
直接序列化
若用
,需开启
或改用
Esbuild 极快但缺失运行时能力,适合纯转译或 CLI 工具链
它不做代码分割、不支持
、没有 HMR,本质是“超快的 TypeScript/JS 编译器”。适合:
将 TS 库编译为多格式(
/
/
)发布
作为其他工具(如
、
)底层依赖,不直接暴露给应用层
CI 中快速验证语法:
注意:
不解析
中的
字段,遇到
会 fallback 到
,可能引入非 ESM 版本。
真正卡住人的往往不是“怎么装”,而是没意识到:打包器决定模块解析规则、影响 tree-shaking 效果、甚至改变
绑定行为。比如
的
和
的
输出结构完全不同,连
是否能拿到默认导出都可能出问题。
webpackviteesbuildimportexport.jsx.tsmodule.rulesbabel-loaderts-loaderswc-loadercss-loaderstyle-loaderimport './index.css'ERROR in ./src/index.js 1:0-26 Module not found: Error: Can't resolve './utils' resolve.extensions'.js''.ts'import utils from './utils'utils.tsimport.meta.envimport.meta.globvite buildrollupbuild.rollupOptionsvite.config.jspluginsdefineimport.meta.envJSON.stringifyrequire('./data.json')resolve.aliasimport data from './data.json?raw'require.ensurecjsesmiifevitestswcesbuild --check --jsx=automatic src/index.tsxesbuildnode_modulesexports"exports": { ".": { "import": "./dist/esm/index.js" } }mainthiswebpackoutput.libraryTarget: 'umd'vitebuild.librequire('pkg')