esbuild 如何把js打包成umd --format=umd无效?
"scripts": {
"build:es": "esbuild src/index.ts --bundle --minify --target=es2015 --format=esm --outfile=lib/index.js",
"build:cjs": "esbuild src/index.ts --bundle --minify --target=es2015 --format=cjs --outfile=lib/index.cjs.js",
"build:umd": "esbuild src/index.ts --bundle --minify --target=es2015 --format=umd --outfile=lib/index.umd.js",
"build": "npm run build:es && npm run build:cjs && npm run build:umd"
},
我想把一个ts文件打包成umd,用来提供给浏览器直接引入使用
但是运行 esbuild src/index.ts --bundle --minify --target=es2015 --format=umd --outfile=lib/index.umd.js
会报错:
X [ERROR] Invalid value "umd" in "--format=umd"
Valid values are "iife", "cjs", or "esm".
请问正确的思路应该是怎样打包呢?
回复
1个回答
![avatar](https://static.blogweb.cn/avatar/4202994235003.webp)
test
2024-06-29
"scripts": {
"build:iife": "esbuild src/index.ts --bundle --minify --target=es2015 --format=iife --global-name=myLibrary --outfile=lib/index.iife.js"
}
html:
<script src="lib/index.iife.js"></script>
<script>
// 用全局变量myLibrary
myLibrary.someFunction();
</script>
回复
![likes](https://cdn.blogweb.cn/icon/client/likes.png?w=48&q=100)
适合作为回答的
- 经过验证的有效解决办法
- 自己的经验指引,对解决问题有帮助
- 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
- 询问内容细节或回复楼层
- 与题目无关的内容
- “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容