esbuild-wasm
提供了两个主要的方法:transform
和build
,它们各自有不同的作用和用途。
transform 方法
transform
方法用于将单个输入文件转换为另一种格式。它主要用于编译和优化代码,例如将TypeScript转换为JavaScript,将JSX转换为JavaScript,或者压缩JavaScript代码。transform
不会分析import
或export
语句,也不会打包多个文件或模块。
transform
方法的调用如下所示:
ini
1esbuild.transform(input, options).then(result => {
2 // 输出结果在 result.code 中
3});
其中,input
是待转换的代码字符串,options
是转换选项,例如指定加载器(loader)或启用压缩等。
build 方法
build
方法是esbuild
的核心功能,它提供了完整的打包解决方案。build
方法不仅可以编译和优化代码,还会分析模块之间的依赖关系,将多个文件或模块打包成单个或多个bundled文件。它支持代码分割(code splitting)、懒加载(lazy loading)、外部模块处理等更复杂的打包功能。
build
方法的调用如下所示:
javascript
1esbuild.build({
2 entryPoints: ['path/to/entry-point.js'],
3 bundle: true,
4 outfile: 'out.js',
5 // 更多选项...
6}).then(result => {
7 // 打包结果可以写入指定的outfile,或者在 result.outputFiles 中获取
8});
在这个例子中,entryPoints
指定了打包的入口文件,bundle
标志启用了打包功能,outfile
指定了输出文件的路径。build
方法提供了丰富的选项来控制打包的行为,例如模块解析策略、环境变量条件编译、插件系统等。
区别
总结起来,transform
和build
方法的主要区别如下:
transform
是用于单文件转换的工具,不处理模块依赖关系,主要用于编译或优化代码。build
是一个完整的打包工具,它处理依赖关系,能将多个模块合并成一个或多个打包文件。
选择使用transform
还是build
主要取决于你的需求。如果只需要编译和优化单个文件而不关心模块之间的依赖关系,那么transform
是一个轻量级的选择。如果需要完整的模块打包功能,包括代码分割、懒加载和复杂的工程构建,那么build
将是更合适的方法。