Skip to content

Conversation

@qixing-jk
Copy link
Contributor

尽量按此模板PR内容,或粘贴相关的ISSUE链接。

已知问题

  1. utils里面index什么函数都有,逻辑不清晰且客户端和服务端函数混杂

解决方案

  1. 进行文件拆分

不过不知道如何在文件结构等方式上,实现有效避免node和browser函数的混用问题,有特殊环境依赖的JS放在特定命名的文件夹中嘛?

测试确认

  • 本地开发环境测试通过
  • 生产环境构建测试通过
  • 版本号正确显示
  • 环境变量配置正常工作

@vercel
Copy link

vercel bot commented May 12, 2025

@qixing-jk is attempting to deploy a commit to the tangly1024's projects Team on Vercel.

A member of the Team first needs to authorize it.

@LooseLi
Copy link
Contributor

LooseLi commented May 13, 2025

重构虽然繁琐但很必要!你开了一个好头!
对于你提出的问题,我有一些想法,代码已推送到https://github.com/LooseLi/NotionNext/tree/refactor/utils
你可以拉取合并到本地仓库分支进行查看。欢迎指教!

我的思路主要是:(分支提交代码只改动了domUtils.js文件)

  1. domUtils.js 为例,将其移至新建的 browser 目录,专门存放浏览器环境特定函数
  2. 创建 browser/index.js 作为统一导出入口,可以方便管理和使用
  3. domUtils.js 中的函数 scanAndConvertToLinks 内部添加了环境检查机制,确保只在浏览器环境中运行

这种目录结构可以进一步扩展,比如新建 common、node 等目录分别存放通用工具和Node环境特定工具。环境检查机制也可以应用于其他需要特定环境运行的函数。

@qixing-jk
Copy link
Contributor Author

重构虽然繁琐但很必要!你开了一个好头! 对于你提出的问题,我有一些想法,代码已推送到LooseLi/NotionNext@refactor/utils 你可以拉取合并到本地仓库分支进行查看。欢迎指教!

我的思路主要是:(分支提交代码只改动了domUtils.js文件)

  1. domUtils.js 为例,将其移至新建的 browser 目录,专门存放浏览器环境特定函数
  2. 创建 browser/index.js 作为统一导出入口,可以方便管理和使用
  3. domUtils.js 中的函数 scanAndConvertToLinks 内部添加了环境检查机制,确保只在浏览器环境中运行

这种目录结构可以进一步扩展,比如新建 common、node 等目录分别存放通用工具和Node环境特定工具。环境检查机制也可以应用于其他需要特定环境运行的函数。

其实主要还是代码分割的问题,现有的webpack过程,当浏览器或者middleware引入的函数中含有node依赖时会出现依赖报错问题。
之前在给中间件配置Redis读取数据的时候就遇到了这个问题,最后直接改用的不依赖node和HTTP的Redis方式

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants