cherry-markdown
cherry-markdown copied to clipboard
[Bug Report] build failure w/ esbuild
Prerequisites
- [X] There isn't an existing issue that reports the same bug to avoid duplicates.
- [X] The provided information offers a minimal reproducible example of the bug.
- [X] For Q&A, please open a GitHub Discussion instead.
Describe the Bug
jsdom的依赖whatwg-url使用了async generator,导致esbuild下打包失败。 另,sanitize不建议用jsdom做 太重了。
Reproduction Steps
No response
System Information
No response
Contributing
None
jsdom 是为了在 node 环境下使用 DOMPurify 做 HTML 清洗而引入的。如果是 web 环境的构建不应该走到这个逻辑,可以检查是否引用错误。
esbuild 不支持 async generator 建议是在 esbuild 社区寻找相关解决方案。
如果有更优的标签清洗方案也欢迎贡献 PR 哈,我们也在持续寻找替代方案。
另外,在 esbuild 社区找到 async generator 相关兼容的 PR,可以考虑升级构建工具链的版本试试。https://github.com/evanw/esbuild/pull/3194
另外,在 esbuild 社区找到 async generator 相关兼容的 PR,可以考虑升级构建工具链的版本试试。evanw/esbuild#3194
是的,构建工具链依赖的旧版本的esbuild 比较棘手
jsdom 是为了在 node 环境下使用 DOMPurify 做 HTML 清洗而引入的。如果是 web 环境的构建不应该走到这个逻辑,可以检查是否引用错误。
esbuild 不支持 async generator 建议是在 esbuild 社区寻找相关解决方案。
如果有更优的标签清洗方案也欢迎贡献 PR 哈,我们也在持续寻找替代方案。
业务代码里是用了纯engine解析模式,
cherry-markdown.core.common.js
文件里就有jsdom引入的逻辑。
错了哈。.common.js
后缀的都是给 node 环境使用的。样例里面引入的是 cherry-markdown.engine.core.js
,这个才是给 web 使用的。
业务代码里是用了纯engine解析模式,
cherry-markdown.core.common.js
文件里就有jsdom引入的逻辑。错了哈。
.common.js
后缀的都是给 node 环境使用的。样例里面引入的是cherry-markdown.engine.core.js
,这个才是给 web 使用的。
!是这样吗。。自动补全的代码里面是common 我都没注意你们这里common是cjs
表格供参考,后续补充到项目 README。
前缀 | 后缀 | 模块 | 语言版本 | UI | 核心引擎 | 大体积依赖 (mermaid等) |
建议使用环境 | 免构建用于生产 |
---|---|---|---|---|---|---|---|---|
cherry-markdown | .js | umd | es5 | ✅ | ✅ | ✅ | Web |
❌ |
cherry-markdown | .esm.js | esm | es2015 | ✅ | ✅ | ✅ | Web |
❌ |
cherry-markdown | .min.js | umd | es5 | ✅ | ✅ | ✅ | Web |
✅ |
cherry-markdown.core | .js | umd | es5 | ✅ | ✅ | ❌ | Web |
❌ |
cherry-markdown.core | .common.js | cjs | es5 | ✅ | ✅ | ❌ | Node |
❌ |
cherry-markdown.engine.core | .js | umd | es5 | ❌ | ✅ | ❌ | Web |
❌ |
cherry-markdown.engine.core | .esm.js | esm | es2015 | ❌ | ✅ | ❌ | Web |
❌ |
cherry-markdown.engine.core | .common.js | cjs | es5 | ❌ | ✅ | ❌ | Node |
❌ |