esbuild打包react受阻?

tsconfig.json

{
    "compilerOptions": {
        "jsx": "react-jsx"
    }
}

我怀疑,因为这个设置,所以我在用esbuild打包后运行时会报错,ReferenceError: React is not defined 项目中也出现了React.createElement 的片段。
但是如果把配置项改为"jsx":"react"的话,每个tsx都得import React 感觉挺麻烦的。
有其他的办法使得esbuild把React打包进来吗?

阅读 2.7k
1 个回答

搞了一天居然自己处理掉了。
处理方式也很简单,自己写一个文件 重新export React

// react-shim.ts
import * as React from 'react'
export { React }
// 打包脚本
require('esbuild').buildSync({
  entryPoints: ['app.jsx'],
  bundle: true,
  inject: ['./react-shim.js'], // 在这里引入会注入每个文件
  outfile: 'out.js',
})
// 我试了下面这两种方式都不行
inject: ['node_modules/react/cjs/react.development.js'],
inject: ['node_modules/react/index.js'],

贴两个esbuild官方文档
https://esbuild.github.io/con...
https://esbuild.github.io/api...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题