开发者文档
1. 项目设置
1.1 前置条件
-
Python(
>= 3.12) -
Node.js(
>=20.19.0)——PR 构建 CI 使用 Node 22.21.1,发布 CI 使用 Node 24.14.1;任何满足最低版本要求的版本应该都能正常工作- 使用显著比 Electron 捆绑的 Node 更新的版本可能会导致编译原生插件时出现问题
-
很多耐心
1.2 Linux 特定前置条件
- Linux 环境需要额外的依赖项,请参阅 Linux 特定前置条件
1.3 Windows 特定前置条件
- 你需要 Build Tools for Visual Studio 2022(滚动到页面最底部)
- 此外,你还需要 spectre-mitigated MSVC,前往"Individual Components"选择 "MSVC ... - VS2022 C++ Spectre-Mitigated Libs"
- 许多原生库还不太支持 ClangCL,因此我们在
.npmrc中强制使用 MSVC(pnpm 会遵循此文件)
1.4 克隆并安装
git clone https://github.com/marktext/marktext.git
cd marktext
pnpm install
1.5 创建最小化的语言文件
- 这在生产构建时会自动运行,但为了性能在开发构建时不会自动运行
pnpm run minify-locales
1.6 在开发模式下运行
pnpm run dev
1.6.1 一些注意事项:
main和preload进程在编辑时不会自动热加载,不幸的是,你需要在每次编辑后重新加载开发进程- 好消息是 Vite 打包速度非常非常快,所以这不应该造成太大困扰
- 虽然
renderer进程支持热加载,但状态的丢失经常会导致奇怪的错误。如果出现这种情况,我建议进行完整重新加载 - 编译目标:
main和preload仍然编译为CommonJSrenderer仅使用ESModules(使用任何旧的CommonJS库时请注意)
1.7 生产构建
# Windows
$ pnpm run build:win
# macOS
$ pnpm run build:mac
# Linux
$ pnpm run build:linux