esbuild 如何把js打包成umd --format=umd无效?

作者站长头像
站长
· 阅读数 9
  "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
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
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容