桌面应用【免费下载链接】browser-laptop[DEPRECATED] Please see https://github.com/brave/brave-browser for the current version of Brave项目地址https://gitcode.com/gh_mirrors/br/browser-laptop点击查看免费下载本篇技术指南以仓库根目录 README.md 为核心骨架系统讲解 Brave 桌面浏览器macOS / Windows / LinuxMuon 时代的完整开发工作流从环境准备、克隆与依赖安装到双终端热更新运行、客户端/服务端通信端口定制、Webdriver 自动化测试以及基于 Electron 分支 Muon 的内核级二次开发。文中所有结论均以本仓库实际源码与配置文件为证据读者读完即可在本仓库基础上独立完成构建、运行与测试的整套开发闭环。仓库定位与版本背景browser-laptop 是 Brave 在早期采用的MuonElectron 分支内核上的桌面浏览器实现覆盖 macOS、Windows 与 Linux 三大平台。README 明确指出该仓库已处于弃用Deprecated过渡期官方后续开发已迁移到基于brave-core的新代码库本仓库仅保留 Release 一个活跃发布渠道Beta 与 Developer 渠道早已切换到新代码库。因此阅读本文时应注意适用前提以下所有命令与配置均针对本仓库Muon 版其工程形态如app/主进程、js/渲染进程、webpack 打包、Spectron 测试是理解代码库组织方式的第一手材料。仓库的工程入口位于 package.jsonmain: ./app/index.js即主进程入口渲染进程入口见 js/entry.js它负责加载各类 less 样式、挂载 React 组件Window并初始化窗口 store。环境准备Prerequisites在克隆与构建之前需要先满足两项基础依赖这也是整个开发环境的地基Node.js 当前 LTS 版本——可通过系统包管理器、nvm或 Node.js 官网安装。从 package.json 的engines字段可以看到硬性下限为node 7.9.0但 README 建议使用 LTS 版本以获得稳定运行环境。npm 5 及以上版本——原因很直接npm 5 引入了package-lock.json锁定机制本仓库根目录已包含 package-lock.json只有 npm 5 才能正确利用它保证依赖版本可复现。Linux 发行版系统包根据发行版不同还需安装用于原生模块编译与打包的系统级工具Debian / Ubuntu / Linux Mintapt-get install build-essential rpm ninja-buildFedoradnf install rpm-build dnf group install Development Tools C Development Tools and Libraries其中rpm/rpm-build与ninja-build服务于后续的打包流程与原生模块构建build-essential提供编译工具链。若在 Linux 上直接安装发布版而非源码构建则可参考仓库内 docs/linuxInstall.md它详细记录了 Snapcraft、apt/dnf/zypper 仓库安装以及直接下载 deb/rpm/原始二进制等多种渠道。获取源码与安装依赖克隆仓库README 提供了三种克隆方式按场景选择# 供 beta 测试者使用浅克隆体积更小 git clone --depth 1 https://github.com/brave/browser-laptop # 开发者走 HTTPS git clone https://github.com/brave/browser-laptop # 开发者走 SSH git clone gitgithub.com:brave/browser-laptop.git在镜像环境中对应命令为git clone https://gitcode.com/gh_mirrors/br/browser-laptop随后进入工作目录cd browser-laptop安装 Node 依赖npm install也支持使用 yarn 替代yarn install。值得说明的是npm install并非只拉取依赖。查看 package.json 的postinstall脚本可以发现安装后会自动串联三段构建流程postinstall: npm run package-tor npm run download-sync-client webpack即打包 Tor 内核tools/package_tor.js→ 下载同步客户端tools/downloadSyncClient.js→ 执行 webpack 打包webpack.config.js。同时依赖中的electron-prebuilt指向 Brave 自己的 forkbrave/electron-prebuilt默认会拉取预编译的 Muon 二进制这也是“开箱即用”的保障。运行开发版浏览器双终端工作流README 推荐用两个终端配合开发终端一监听代码变更实时增量构建npm run watch该命令本质是启动webpack-dev-server见 package.json 的watch: webpack-dev-server --color。结合 webpack.config.js 的development()分支可看到开发模式下启用了HotModuleReplacementPlugin热更新插件devServer 的contentBase指向app/extensions/brave产物以http://localhost:port/gen/形式从内存提供并忽略node_modules与test/**的监听以降低开销。终端二启动浏览器本体npm startnpm start实际执行node ./tools/start.js ...参数包括--user-data-dir-namebrave-development --enable-logging --v0 --enable-extension-activity-logging --enable-sandbox-logging --enable-dcheck。看 tools/start.js 的实现可知它本质是一个启动器设置NODE_ENV后通过child_process.spawn拉起electron二进制并传入仓库目录作为应用路径同时透传后续参数、保持 stdio 继承并妥善处理SIGTERM/SIGINT信号转发。常见故障与修复若遇到与 Muonbrave/electronfork更新相关的报错README 给出的修复方案是先做一次干净的重新安装rm -rf node_modules/ npm install若仍不生效则需清理本地的 Electron 缓存目录~/.electron后再重试。从源码看仓库其实提供了更规范的清理入口 tools/clean.js它支持多种清理粒度nodeModules()移除node_modules、electron()移除~/.electron、userData按需清理ABPFilterParserData.dat、httpse.json、SafeBrowsingData.dat、TrackingProtection.dat、session-store-1等运行时数据文件。对应的 npm scripts如npm run clean、npm run clean-adblock-data也在 package.json 中一并提供。定制客户端/服务端通信端口Brave 默认使用端口 8080作为客户端渲染层与服务器主进程层之间的通信端口其默认值定义在 package.json 的config字段config: { port: 8080 }如果 8080 已被占用例如本地有 web 代理可以通过 npm config 覆盖该端口无需改代码npm config set brave:port 9001这一配置的传播链路在源码中可以完整追踪webpack.config.js 第 7 行通过process.env.npm_package_config_port读取端口并在DefinePlugin中将其注入为编译期常量BRAVE_PORT渲染进程侧 app/filtering.js 构造资源拦截重定向 URL 时使用process.env.BRAVE_PORT || process.env.npm_package_config_port扩展加载逻辑 app/extensions.js 在开发模式下拼接localhost:port作为 devServer 地址。也就是说修改端口后需重新执行 webpack 构建重启npm run watch使新端口生效。运行 Webdriver 自动化测试完整测试与单元测试测试体系基于mocha webdriver.io经 Spectron 驱动真实浏览器实例测试文件统一放在顶层test/目录下并以Test.js后缀命名。先安装 mocha 全局依赖npm install --global mocha运行全部测试含 UI 集成测试npm run test仅运行单元测试更快更稳定npm run unittest对应实现见 package.jsontest执行mocha test/**/*Test.jsunittest先跑 Python 测试工具再执行mocha test/unit/**/*Test.js。测试专用构建与子集筛选为了贴近生产环境测试不使用 webpack dev server因此改动代码后需单独保持测试 bundle 最新npm run watch-testnpm run watch-all则同时并行watch与watch-test适合全量开发。然后在另一个终端执行npm test只跑满足特定条件的用例可用--grep按测试名称过滤npm run test -- --grepexpression例如--grep^tabs会匹配所有以tabs开头的 describe/it 用例该用法对test与unittest两种模式均有效。更细致的测试编写规范、常用 helper 方法如waitForTabCount、changeSetting、getAppState与间歇性失败规避策略可进一步阅读 docs/tests.mdSpectron 驱动层的封装见 test/lib/brave.js它从generateUserDataDir()生成每次运行独立的临时用户数据目录并注册了大量自定义 webdriver 命令。测试环境的行为差异从源码可以观察到测试环境的特殊处理js/entry.js 在NODE_ENV test时会把渲染进程的 store 与 actions 挂载到electron.testData供测试访问并默认关闭新标签页背景图tabs.show-dashboard-images false以加速测试运行——这与 docs/tests.md 中“新标签页背景默认禁用需要时用changeSetting(tabs.show-dashboard-images, true)重新开启”的说明完全对应。基于 Muon 内核的二次开发默认情况下npm install会通过 Brave 自有的electron-prebuiltfork 拉取预编译好的 Muon 二进制普通应用层开发无需关心内核。但若想修改 Muon 本身例如向 webview 暴露一个新事件、扩展内核 API就必须自行构建 Muon。README 给出的路径是先检出browser-laptop-bootstrap引导仓库再按其中的 wiki 步骤搭建 Muon 构建环境随后以本仓库作为应用层代码运行。这一步骤面向的是需要触碰浏览器内核的进阶开发者普通功能开发并不需要。打包安装包、Bundle 与自动更新发布相关的打包流程安装包生成、Bundle 组装、自动更新支持由仓库维护者通过 wiki 提供指引本仓库侧对应的可执行入口包括tools/buildInstaller.js对应npm run build-installertools/buildPackage.js对应npm run build-package平台安装器资源位于 res/含builderConfig.json、NSIS 脚本、各发行版打包配置等此外 docs/buildingReleases.md 与 docs/autoUpdates.md 分别记录了发布构建与自动更新机制。需要注意的是这些流程同样以 Muon 时代为适用前提。Windows 与预配置虚拟机支持Windows 开发者README 指引参考 wiki 中的 Windows 构建指南进行完整环境搭建仓库 tools/windows/ 目录下也提供了fix-electron.ps1、re-npm.ps1、vs2015-sp3-fix-npm.ps1等针对 Windows 的辅助脚本。预配置虚拟机部分平台可通过 Vagrant 预配置 VM 直接获得可开发环境详情见 test/vms/vagrant/README.md对应 npm 脚本vagrant-up-linux、vagrant-ssh-linux等也已内置在 package.json 中。仓库配套文档索引README 末尾列出的配套文档是深入该仓库最直接的入口且均已存在于仓库内CONTRIBUTING.md——贡献规范与提交约定配套 COMMIT_TEMPLATEdocs/style.md——样式与编码风格约定项目采用 JavaScript Standard Stylelint 入口为npm run lintdocs/tests.md——测试体系与子集运行方法docs/debugging.md——调试指南docs/translations.md——本地化翻译参与方式docs/linuxInstall.md——Linux 发行版安装指南小结从 README 出发结合源码可以确认browser-laptopMuon 版的开发闭环是Node LTS npm 5 的环境 →npm install自动完成 Tor/同步/打包 →npm run watchnpm start双终端热开发 →npm config set brave:port定制通信端口 →npm run watch-testnpm test自动化验证 →build-installer/build-package产出发布物。理解这套基于 webpack Electron fork Spectron 的工程骨架对于阅读历史代码库、理解 Electron 应用的分进程架构以及在 Muon 内核上做延伸开发都是极具价值的参考样本。需始终牢记该仓库已停止主线开发新功能与贡献请转向新代码库。赞分享桌面应用【免费下载链接】browser-laptop[DEPRECATED] Please see https://github.com/brave/brave-browser for the current version of Brave项目地址https://gitcode.com/gh_mirrors/br/browser-laptop点击查看免费下载相关推荐深入解读 eapache/channels v1.1.0Go 通道扩展库的竞态修复与性能取舍深入解读 eapache/channels v1.1.0Go 通道扩展库的竞态修复与性能取舍 导读 本文以 Cilium 仓库中 vendored 的 ven桌面应用为什么选择MPRA-DragoNN生物信息学研究者的高效DNA调控预测工具为什么选择MPRA DragoNN生物信息学研究者的高效DNA调控预测工具 MPRA DragoNN是一款专为生物信息学研究者设计的高效DNA调控预测工具它上一篇简单上手指南如何使用smartmontools 7.5监控硬盘健康状态下一篇M/o/Vfuscator与星际互联网安全深空通信保护创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考