Boostnote 构建与打包全指南:从 Webpack HMR 开发调试到生成 deb/rpm 发行包
Boostnote 构建与打包全指南从 Webpack HMR 开发调试到生成 deb/rpm 发行包【免费下载链接】BoostNote-LegacyThis repository is outdated and new Boost Note app is available! Weve launched a new Boost Note app which supports real-time collaborative writing. https://github.com/BoostIO/BoostNote-App项目地址: https://gitcode.com/gh_mirrors/bo/BoostNote-Legacy本文以 BoostnoteLegacy 版 Electron 笔记应用当前仓库package.json版本为 0.16.1的官方构建文档为核心系统梳理从源码构建这一应用的完整链路环境版本要求、基于 Webpack HMR 的开发模式、拉取 Pull Request 代码进行验证、使用 Grunt 完成生产构建与代码签名以及在 Linux 平台制作.deb/.rpm发行包。读完本文你将掌握yarn run dev热更新背后的真实执行链路dev-scripts/dev.js webpack.config.js、Grunt 任务编排逻辑gruntfile.js并能独立完成 Boostnote 各平台的产物构建。一、构建环境要求Node 8.x 与 npm 6.x原文档明确列出了构建 Boostnote 所需的版本基线npm: 6.xnode: 8.x结合仓库 package.json 可以进一步确认当时的工具链选型Electron 固定在 4.2.12config.electron-version字段webpack 为 1.12.2grunt 为 0.4.5依赖统一通过 Yarn 管理仓库根目录存在 yarn.lock所有文档命令均以yarn开头。因此请先确保本机 Node/npm 处于上述版本区间并安装 Yarn再进行后续操作。适用前提说明本文命令与源码行为以当前仓库实际内容为准。Boostnote 已迭代至新架构版本本文描述的构建流程仅适用于本仓库Legacy 分支源码。二、开发模式yarn run dev 与 Webpack HMRBoostnote 使用 Webpack HMRHot Module Replacement模块热替换进行日常开发。在项目根目录依次执行两条命令即可启动应用。1. 安装依赖包$ yarn该命令根据 yarn.lock 安装全部依赖与开发依赖。2. 构建并运行$ yarn run dev从 package.json 的scripts字段可以看到dev实际展开为cross-env NODE_ENVdevelopment node dev-scripts/dev.js真正驱动开发模式的是 dev-scripts/dev.js其执行流程可概括为读取 webpack.config.js开发配置注入HotModuleReplacementPlugin并把webpack-dev-server/client?http://localhost:8080/与webpack/hot/dev-server两个入口追加到config.entry.main入口主文件为 webpack-skeleton.js 中指定的./browser/main/index.js以localhost:8080端口启动 Webpack Dev Server配置项hot: true、inline: true、publicPath: http://localhost:8080/assets/首次打包成功后通过spawn(electron, [--hot, ./index.js])拉起 Electron 应用其中--hot标志驱动渲染进程从 Dev Server 拉取最新模块。开发态配置webpack.config.js还包含两个值得注意的点devtool: cheap-module-eval-source-map提供较快的增量编译与源码映射.styl样式采用 CSS Modules 加载css?modulesimportLoaders1localIdentName[name]__[local]___[path]这也是下文新增 CSS 类需要手动刷新的原因。需要手动刷新应用的两种情况HMR 并非对所有改动都生效原文档特别提示以下两种场景需要手动刷新应用编辑组件Component的 constructor 方法时组件构造逻辑的变更无法通过热替换安全合并新增 CSS 类时原因与 1 类似——每个组件的 CSS 类是在 constructor 阶段由组件自身重写的新增类名后不会自动同步到已运行的实例。三、拉取并运行 Pull Request 中的代码若要验证 GitHub 上某个 Pull Request 的代码例如 PR 2794原文档给出了标准流程。核心思路是查看 PR 页面 URL 末尾的数字作为 PR 编号然后用PR占位符指代该编号不要带方括号。尚未 clone 过 master 分支git clone https://github.com/BoostIO/Boostnote.git cd Boostnote git fetch origin pull/PR/head:PR git checkout PR若需从本镜像仓库获取源码可执行git clone后进入仓库目录再执行后续 fetch/checkout 命令。已拥有 master 分支git fetch origin pull/PR/head:PR git checkout PR编译并运行该 PR 代码yarn yarn run dev其中git fetch origin pull/PR/head:PR会从远程拉取 PR 对应的引用git checkout PR切换到该分支之后复用与日常开发完全相同的yarnyarn run dev组合即可在本机运行 PR 中的改动。四、生产构建grunt pre-build 与 grunt buildBoostnote 使用 Grunt 自动化整个打包部署流程。注意默认的grunt任务default任务注册为build会包含 codesignmacOS 代码签名与 authenticodeWindows 代码签名步骤官方不推荐直接执行因为签名需要私钥与证书。因此原文档专门提供了一个只生成可执行文件的预构建脚本grunt pre-build从 gruntfile.js 可以看到pre-build与build的任务编排compile以BABEL_ENVproduction、NODE_ENVproduction环境变量执行node_modules/.bin/webpack --config webpack-production.config.js即 webpack-production.config.js产出编译后的 bundlepack:platform调用 electron-packagerelectron-packager依赖版本 ^12.2.0按当前平台getTarget()依据process.platform映射为osx/win/linux打包arch 固定为x64Electron 版本取自pkg.config.electron-version4.2.12并设置asar: false、prune: true、overwrite: true输出目录统一为distpre-buildcompilepack:platform即仅生成可执行文件。执行grunt pre-build后产物位于项目根目录的dist目录。由于应用未经签名自动更新功能不会生效——这一点与入口文件 index.js 的实现吻合Windows 下 Squirrel 的--squirrel-install/--squirrel-updated/--squirrel-uninstall等事件依赖Update.exe完成快捷键创建与移除未签名的构建不具备完整的更新器支持。如果你确有发布需要可以在此基础上对可执行文件补充 codesignmacOS或 authenticodeWindows签名。签名凭据来自secret/auth_code.json含OSX_COMMON_NAME与WIN_CERT_PASSWORD字段gruntfile.js 在读取该文件失败ENOENT时会打印警告secret/auth_code.json is not found. CodeSigning is not available.但不会中断构建codesign任务仅在 macOS 平台执行Windows 安装包则由grunt-electron-installer的create-windows-installer任务配合secret/authenticode_cer.p12证书生成。五、制作自己的 Linux 发行包deb / rpm在 Linux 平台如 Ubuntu、Fedora执行grunt build即可生成发行包。注意在单一环境中可以同时生成.deb和.rpm两种格式无需分别准备系统。从 gruntfile.js 的build任务Linux 分支可见其完整链路compile → pack:linux → electron-installer-debian → electron-installer-redhat其中 deb 打包配置electron-installer-debian为name: boostnote、arch: amd64、categories: [Development, Utility]、可执行文件名bin: Boostnoterpm 打包配置electron-installer-redhat对应arch: x86_64其余元数据一致。第 1 步安装 Node/npm 后安装构建依赖包$ yarn add --dev grunt-electron-installer-debian grunt-electron-installer-redhat这两个插件在 package.json 中已被列为optionalDependencies版本分别约为 ^0.5.0 与 ^0.3.1但建议按文档显式安装以确保可用。第 2 步安装系统级打包工具Ubuntu/Debian$ sudo apt-get install -y rpm fakerootFedora$ sudo dnf install -y dpkg dpkg-dev rpm-build fakeroot第 3 步执行完整构建$ grunt build构建完成后在dist目录中即可找到生成的.deb与.rpm安装包。六、构建注意事项小结回顾整个构建流程有几个容易踩坑的要点值得单独强调版本对齐Node 8.x / npm 6.x 是文档声明的基线过高或过低的 Node 版本可能与本仓库依赖webpack 1.x、grunt 0.4.x不兼容HMR 局限修改组件 constructor 或新增 CSS 类时需手动刷新应用这是 CSS Modules 在 constructor 阶段重写类名导致的固有限制默认 grunt 任务包含签名请优先使用grunt pre-build产出未签名可执行文件避免因缺少secret/auth_code.json与证书导致流程失败自动更新依赖签名dist中的未签名产物无法使用自动更新如需分发请自行完成 codesign / authenticodeLinux 打包依赖系统工具.deb与.rpm的生成分别依赖fakeroot、rpmDebian 系或dpkg、rpm-buildRed Hat 系需提前通过包管理器安装。如需查阅其他语言版本的本篇构建文档仓库内已提供对应翻译简体中文版、繁体中文版、日文版、韩文版、俄文版、法文版、葡萄牙文版 与 德文版。【免费下载链接】BoostNote-LegacyThis repository is outdated and new Boost Note app is available! Weve launched a new Boost Note app which supports real-time collaborative writing. https://github.com/BoostIO/BoostNote-App项目地址: https://gitcode.com/gh_mirrors/bo/BoostNote-Legacy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

科研数据可视化:柱状图误差线与显著性标记全流程

科研数据可视化:柱状图误差线与显著性标记全流程

1. 科研图表制作实战:柱状图误差线显著性标记全流程解析在生物医学和实验科学领域,数据可视化是研究成果呈现的核心环节。Cell期刊作为生命科学领域的顶级刊物,其图表规范性和信息密度一直是行业标杆。今天我们就来拆解一个经典组合——带误差…

2026/9/21 15:19:22 阅读更多 →
vm0安全实践清单:细粒度权限、隔离执行与可审计性的落地细节

vm0安全实践清单:细粒度权限、隔离执行与可审计性的落地细节

vm0安全实践清单:细粒度权限、隔离执行与可审计性的落地细节 【免费下载链接】okou Okou connects to the tools your team already uses and does the work — across marketing, sales, engineering, and operations, under your control. 项目地址: https://gi…

2026/9/21 15:19:22 阅读更多 →
深入理解 Ray RLlib 中的分布式 PPO:从 Clipped Surrogate 目标到同步并行训练架构

深入理解 Ray RLlib 中的分布式 PPO:从 Clipped Surrogate 目标到同步并行训练架构

人工智能分布式训练强化学习任务调度模型推理服务 【免费下载链接】ray Ray is an AI compute engine. Ray consists of a core distributed runtime and a set of AI Libraries for accelerating ML workloads. 项目地址: https://gitcode.com/gh_mirrors/ra/ray 点…

2026/9/21 15:18:22 阅读更多 →

最新新闻

Swagger Codegen Bash 客户端模型文档解读:以 Petstore 的 Category 模型为例

Swagger Codegen Bash 客户端模型文档解读:以 Petstore 的 Category 模型为例

开发工具代码生成API设计 【免费下载链接】swagger-codegen swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. 项目地址: http…

2026/9/21 15:50:58 阅读更多 →
GraalVM Native Image 运行时模块系统支持(Runtime Module System)深度解析

GraalVM Native Image 运行时模块系统支持(Runtime Module System)深度解析

编译器JIT编译语言运行时高性能计算内存管理 【免费下载链接】graal GraalVM compiles applications into native executables that start instantly, scale fast, and use fewer compute resources 🚀 项目地址: https://gitcode.com/gh_mirrors/gr/gra…

2026/9/21 15:50:58 阅读更多 →
Nix 二进制缓存签名密钥对生成指南:nix-store --generate-binary-cache-key 详解

Nix 二进制缓存签名密钥对生成指南:nix-store --generate-binary-cache-key 详解

Nix 二进制缓存签名密钥对生成指南:nix-store --generate-binary-cache-key 详解 【免费下载链接】nix Nix, the purely functional package manager 项目地址: https://gitcode.com/gh_mirrors/ni/nix Nix 的二进制缓存(binary cache&#xff09…

2026/9/21 15:50:58 阅读更多 →
MCP Python SDK 客户端回调(Client Callbacks)权威指南:响应服务端发起的请求与能力协商

MCP Python SDK 客户端回调(Client Callbacks)权威指南:响应服务端发起的请求与能力协商

MCP Python SDK 客户端回调(Client Callbacks)权威指南:响应服务端发起的请求与能力协商 【免费下载链接】python-sdk The official Python SDK for Model Context Protocol servers and clients 项目地址: https://gitcode.com/gh_mirrors…

2026/9/21 15:50:58 阅读更多 →
DLSS Swapper 完整指南:免费两步替换游戏内 DLSS 版本

DLSS Swapper 完整指南:免费两步替换游戏内 DLSS 版本

DLSS Swapper 完整指南:免费两步替换游戏内 DLSS 版本 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 一个很常见的情况:游戏大更新后,你重新进入游戏,发现画质比之前更糊…

2026/9/21 15:50:58 阅读更多 →
MyBatis缓存优化与EHCache集成实战

MyBatis缓存优化与EHCache集成实战

1. MyBatis缓存机制与EHCache的价值解析作为Java生态中最受欢迎的ORM框架之一,MyBatis的缓存设计直接影响着应用性能。其内置的PerpetualCache采用简单的HashMap实现,在单机环境下表现尚可,但在分布式场景或高并发请求下就会暴露出内存限制、…

2026/9/21 15:49:57 阅读更多 →

日新闻

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程

agents-generator 决策矩阵全解析:从项目检测到 AGENTS.md 规则生成的 16 步判定流程 【免费下载链接】agentic-awesome-skills AAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and …

2026/9/21 0:00:01 阅读更多 →
gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析

gin-vue-admin 前端工具函数全景指南:src/utils 复用规范与源码级解析 【免费下载链接】gin-vue-admin 🚀ViteVue3Gin拥有AI辅助的基础开发平台,企业级业务AI开发解决方案,内置mcp辅助服务,内置skills管理,…

2026/9/21 0:00:01 阅读更多 →
Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

Wox 全功能插件开发实战指南:基于 Python / Node.js 宿主与 WebSocket 的持久化插件体系

桌面应用AI 应用插件系统 【免费下载链接】Wox A cross-platform launcher that simply works 项目地址: https://gitcode.com/gh_mirrors/wo/Wox 点击查看 免费下载 全功能插件(Full-featured Plugin)是 Wox 三类插件实现方式中能力最完整的…

2026/9/21 0:00:01 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/21 3:13:20 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/21 2:19:36 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/21 4:51:05 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/21 15:36:51 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/21 15:36:51 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/19 23:35:34 阅读更多 →