From d36889d9f6832dc72efb4dae0081114a254c45a6 Mon Sep 17 00:00:00 2001 From: mesalogo Date: Wed, 2 Sep 2026 00:45:15 +0800 Subject: [PATCH] fix: quiet resolved dependency reference logs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit electron-builder listed shared, successfully resolved production dependencies as duplicate references during every package build. All desktop packaging entry points now lower only that non-actionable summary to debug while unresolved reference failures remain visible. Move Renderer-bundled AntV G6 to development dependencies so its transitive graph is not copied into desktop packages. Release note: 桌面打包不再显示无需处理的重复依赖引用摘要,也不再把已由 Renderer 打包的 AntV G6 依赖树重复复制到安装包中。 --- BUILD.md | 6 ++ build/build-portable.cjs | 2 +- build/build-release.cjs | 2 +- build/run-electron-builder.cjs | 32 +++++++++ build/run-packaged-deepseek-harness-smoke.cjs | 2 +- package-lock.json | 46 ++++++++++++- package.json | 12 ++-- tests/electron-builder-wrapper.test.ts | 65 +++++++++++++++++++ 8 files changed, 157 insertions(+), 10 deletions(-) create mode 100644 build/run-electron-builder.cjs create mode 100644 tests/electron-builder-wrapper.test.ts diff --git a/BUILD.md b/BUILD.md index 11317b1a..e8b186af 100644 --- a/BUILD.md +++ b/BUILD.md @@ -132,6 +132,12 @@ npm run dist:linux:arm64 打包产物位于 `dist`。 +所有桌面打包入口通过同一个 `electron-builder` 启动脚本运行。正常日志会隐藏 +`duplicate dependency references` 信息摘要,因为它只表示同一已解析依赖被多条 +生产依赖路径共享,并不要求构建操作者处理;调试日志仍会保留该摘要。Renderer 中 +已由 Vite 打包的 `@antv/g6` 归类为构建期依赖,不会再作为独立 Node 模块复制进桌面 +安装包。 + 以上 `dist*` 与 `portable` 命令用于普通本地桌面打包。它们会携带 `agent-runtime-lock.json`、`remote-runtime-lock.json` 与公开的 `agent-release-keys.json`,但所有桌面构建路径(包括本地 `portable`)都不会嵌入 diff --git a/build/build-portable.cjs b/build/build-portable.cjs index 9fa5d23a..f6cb022d 100644 --- a/build/build-portable.cjs +++ b/build/build-portable.cjs @@ -336,7 +336,7 @@ function main() { const result = spawnSync( process.execPath, [ - join(root, 'node_modules', 'electron-builder', 'cli.js'), + join(root, 'build', 'run-electron-builder.cjs'), '--dir', '--x64', `--config.directories.output=${stagingRoot}`, diff --git a/build/build-release.cjs b/build/build-release.cjs index ea831c96..0e2dee5f 100644 --- a/build/build-release.cjs +++ b/build/build-release.cjs @@ -346,7 +346,7 @@ function buildElectronBuilderArguments(options, outputDirectory) { ) )] const builderArguments = [ - join(root, 'node_modules', 'electron-builder', 'cli.js'), + join(root, 'build', 'run-electron-builder.cjs'), '--config', releaseBuilderConfig, definition.builderFlag, diff --git a/build/run-electron-builder.cjs b/build/run-electron-builder.cjs new file mode 100644 index 00000000..d3496d3a --- /dev/null +++ b/build/run-electron-builder.cjs @@ -0,0 +1,32 @@ +'use strict' + +function configureElectronBuilderLogLevels( + moduleManager = require( + 'app-builder-lib/out/node-module-collector/moduleManager' + ) +) { + const duplicateReferenceMessage = + moduleManager.LogMessageByKey.PKG_DUPLICATE_REF + if ( + !duplicateReferenceMessage || + !moduleManager.logMessageLevelByKey[ + duplicateReferenceMessage + ] + ) { + throw new Error( + '当前 electron-builder 不支持依赖引用日志级别配置' + ) + } + moduleManager.logMessageLevelByKey[ + duplicateReferenceMessage + ] = 'debug' +} + +if (require.main === module) { + configureElectronBuilderLogLevels() + require('electron-builder/cli') +} + +module.exports = { + configureElectronBuilderLogLevels +} diff --git a/build/run-packaged-deepseek-harness-smoke.cjs b/build/run-packaged-deepseek-harness-smoke.cjs index da5b4848..e4e808eb 100644 --- a/build/run-packaged-deepseek-harness-smoke.cjs +++ b/build/run-packaged-deepseek-harness-smoke.cjs @@ -147,7 +147,7 @@ async function main() { ) const packageArguments = [ - resolve('node_modules/electron-builder/cli.js'), + resolve('build/run-electron-builder.cjs'), '--projectDir', project, '--win', diff --git a/package-lock.json b/package-lock.json index 5b91a80f..2e39922b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,7 +10,6 @@ "license": "0BSD", "dependencies": { "@agentclientprotocol/sdk": "0.25.1", - "@antv/g6": "^5.1.1", "@deepseek-ai/cordis": "4.0.1", "@deepseek-ai/dsh-agent": "0.1.0-rc.8", "@deepseek-ai/dsh-agent-loop": "0.1.0-rc.8", @@ -75,6 +74,7 @@ "zod": "^4.4.3" }, "devDependencies": { + "@antv/g6": "^5.1.1", "@continuedev/cli": "1.5.47", "@eslint/js": "^10.0.1", "@fontsource-variable/inter": "^5.3.0", @@ -168,6 +168,7 @@ "version": "0.1.26", "resolved": "https://registry.npmjs.org/@antv/algorithm/-/algorithm-0.1.26.tgz", "integrity": "sha512-DVhcFSQ8YQnMNW34Mk8BSsfc61iC1sAnmcfYoXTAshYHuU50p/6b7x3QYaGctDNKWGvi1ub7mPcSY0bK+aN0qg==", + "dev": true, "license": "MIT", "dependencies": { "@antv/util": "^2.0.13", @@ -178,6 +179,7 @@ "version": "2.0.17", "resolved": "https://registry.npmjs.org/@antv/util/-/util-2.0.17.tgz", "integrity": "sha512-o6I9hi5CIUvLGDhth0RxNSFDRwXeywmt6ExR4+RmVAzIi48ps6HUy+svxOCayvrPBN37uE6TAc2KDofRo0nK9Q==", + "dev": true, "license": "ISC", "dependencies": { "csstype": "^3.0.8", @@ -188,6 +190,7 @@ "version": "2.1.11", "resolved": "https://registry.npmjs.org/@antv/component/-/component-2.1.11.tgz", "integrity": "sha512-dTdz8VAd3rpjOaGEZTluz82mtzrP4XCtNlNQyrxY7VNRNcjtvpTLDn57bUL2lRu1T+iklKvgbE2llMriWkq9vQ==", + "dev": true, "license": "MIT", "dependencies": { "@antv/g": "^6.1.11", @@ -200,18 +203,21 @@ "version": "0.1.3", "resolved": "https://registry.npmjs.org/@antv/event-emitter/-/event-emitter-0.1.3.tgz", "integrity": "sha512-4ddpsiHN9Pd4UIlWuKVK1C4IiZIdbwQvy9i7DUSI3xNJ89FPUFt8lxDYj8GzzfdllV0NkJTRxnG+FvLk0llidg==", + "dev": true, "license": "MIT" }, "node_modules/@antv/expr": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@antv/expr/-/expr-1.0.2.tgz", "integrity": "sha512-vrfdmPHkTuiS5voVutKl2l06w1ihBh9A8SFdQPEE+2KMVpkymzGOF1eWpfkbGZ7tiFE15GodVdhhHomD/hdIwg==", + "dev": true, "license": "MIT" }, "node_modules/@antv/g": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/@antv/g/-/g-6.3.1.tgz", "integrity": "sha512-WYEKqy86LHB2PzTmrZXrIsIe+3Epeds2f68zceQ+BJtRoGki7Sy4IhlC8LrUMztgfT1t3d/0L745NWZwITroKA==", + "dev": true, "license": "MIT", "dependencies": { "@antv/g-lite": "2.7.0", @@ -225,6 +231,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@antv/g-canvas/-/g-canvas-2.2.0.tgz", "integrity": "sha512-h7zVBBo2aO64DuGKvq9sG+yTU3sCUb9DALCVm7nz8qGPs8hhLuFOkKPEzUDNfNYZGJUGzY8UDtJ3QRGRFcvEQg==", + "dev": true, "license": "MIT", "dependencies": { "@antv/g-lite": "2.7.0", @@ -239,6 +246,7 @@ "version": "2.7.0", "resolved": "https://registry.npmjs.org/@antv/g-lite/-/g-lite-2.7.0.tgz", "integrity": "sha512-uSzgHYa5bwR5L2Au7/5tsOhFmXKZKLPBH90+Q9bP9teVs5VT4kOAi0isPSpDI8uhdDC2/VrfTWu5K9HhWI6FWw==", + "dev": true, "license": "MIT", "dependencies": { "@antv/g-math": "3.1.0", @@ -254,6 +262,7 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/@antv/g-math/-/g-math-3.1.0.tgz", "integrity": "sha512-DtN1Gj/yI0UiK18nSBsZX8RK0LszGwqfb+cBYWgE+ddyTm8dZnW4tPUhV7QXePsS6/A5hHC+JFpAAK7OEGo5ZQ==", + "dev": true, "license": "MIT", "dependencies": { "@antv/util": "^3.3.5", @@ -266,6 +275,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/@antv/g-plugin-dragndrop/-/g-plugin-dragndrop-2.1.1.tgz", "integrity": "sha512-+aesDUJVQDs6UJ2bOBbDlaGAPCfHmU0MbrMTlQlfpwNplWueqtgVAZ3L57oZ2ZGHRWUHiRwZGPjXMBM3O2LELw==", + "dev": true, "license": "MIT", "dependencies": { "@antv/g-lite": "2.7.0", @@ -278,6 +288,7 @@ "version": "5.1.1", "resolved": "https://registry.npmjs.org/@antv/g6/-/g6-5.1.1.tgz", "integrity": "sha512-50bXxMUf4mChyOv4ePVeWZLwotih9VunKfp0a++Wofv/wCyY8fb9+CV2wouIBCOZnd5ydBRA4NNaX9yLJzqa2w==", + "dev": true, "license": "MIT", "dependencies": { "@antv/algorithm": "^0.1.26", @@ -297,6 +308,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/@antv/graphlib/-/graphlib-2.0.4.tgz", "integrity": "sha512-zc/5oQlsdk42Z0ib1mGklwzhJ5vczLFiPa1v7DgJkTbgJ2YxRh9xdarf86zI49sKVJmgbweRpJs7Nu5bIiwv4w==", + "dev": true, "license": "MIT", "dependencies": { "@antv/event-emitter": "^0.1.3" @@ -306,12 +318,14 @@ "version": "0.7.1", "resolved": "https://registry.npmjs.org/@antv/hierarchy/-/hierarchy-0.7.1.tgz", "integrity": "sha512-7r22r+HxfcRZp79ZjGmsn97zgC1Iajrv0Mm9DIgx3lPfk+Kme2MG/+EKdZj1iEBsN0rJRzjWVPGL5YrBdVHchw==", + "dev": true, "license": "MIT" }, "node_modules/@antv/layout": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@antv/layout/-/layout-2.0.0.tgz", "integrity": "sha512-aCZ3UdNc40SfT7meFV7QTADY2HCnc0DShVw56CJNTI6oExUIVU736grPuL5Dhb8/JrVaU4Y83QPN/P7KafBzlw==", + "dev": true, "license": "MIT", "dependencies": { "@antv/event-emitter": "^0.1.3", @@ -332,6 +346,7 @@ "version": "0.4.16", "resolved": "https://registry.npmjs.org/@antv/scale/-/scale-0.4.16.tgz", "integrity": "sha512-5wg/zB5kXHxpTV5OYwJD3ja6R8yTiqIOkjOhmpEJiowkzRlbEC/BOyMvNUq5fqFIHnMCE9woO7+c3zxEQCKPjw==", + "dev": true, "license": "MIT", "dependencies": { "@antv/util": "^3.3.7", @@ -343,6 +358,7 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/@antv/util/-/util-3.3.11.tgz", "integrity": "sha512-FII08DFM4ABh2q5rPYdr0hMtKXRgeZazvXaFYCs7J7uTcWDHUhczab2qOCJLNDugoj8jFag1djb7wS9ehaRYBg==", + "dev": true, "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.3", @@ -354,6 +370,7 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/@antv/vendor/-/vendor-1.0.11.tgz", "integrity": "sha512-LmhPEQ+aapk3barntaiIxJ5VHno/Tyab2JnfdcPzp5xONh/8VSfed4bo/9xKo5HcUAEydko38vYLfj6lJliLiw==", + "dev": true, "license": "MIT AND ISC", "dependencies": { "@types/d3-array": "^3.2.1", @@ -6383,6 +6400,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz", "integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ==", + "dev": true, "license": "MIT", "engines": { "node": ">= 0.6.0" @@ -6559,6 +6577,7 @@ "version": "2.3.4", "resolved": "https://registry.npmjs.org/bubblesets-js/-/bubblesets-js-2.3.4.tgz", "integrity": "sha512-DyMjHmpkS2+xcFNtyN00apJYL3ESdp9fTrkDr5+9Qg/GPqFmcWgGsK1akZnttE1XFxJ/VMy4DNNGMGYtmFp1Sg==", + "dev": true, "license": "MIT" }, "node_modules/buffer-equal-constant-time": { @@ -6900,6 +6919,7 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, "license": "MIT", "dependencies": { "color-name": "^1.0.0", @@ -6922,6 +6942,7 @@ "version": "4.4.2", "resolved": "https://registry.npmjs.org/comlink/-/comlink-4.4.2.tgz", "integrity": "sha512-OxGdvBmJuNKSCMO4NTl1L47VRp6xn2wG4F/2hYzB6tiCb709otOxtEYCSvK80PtjODfXXZu8ds+Nw5kVCjqd2g==", + "dev": true, "license": "Apache-2.0" }, "node_modules/comma-separated-tokens": { @@ -7082,6 +7103,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz", "integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==", + "dev": true, "license": "MIT", "dependencies": { "utrie": "^1.0.2" @@ -7228,6 +7250,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/d3-binarytree/-/d3-binarytree-1.0.2.tgz", "integrity": "sha512-cElUNH+sHu95L04m92pG73t2MEJXKu+GeKUN1TJkFsu93E5W8E9Sc3kHEGJKgenGvj19m6upSn2EunvMgMD2Yw==", + "dev": true, "license": "MIT" }, "node_modules/d3-brush": { @@ -7398,6 +7421,7 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/d3-force-3d/-/d3-force-3d-3.0.6.tgz", "integrity": "sha512-4tsKHUPLOVkyfEffZo1v6sFHvGFwAIIjt/W8IThbp08DYAsXZck+2pSHEG5W1+gQgEvFLdZkYvmJAbRM2EzMnA==", + "dev": true, "license": "MIT", "dependencies": { "d3-binarytree": "1", @@ -7435,6 +7459,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-4.0.0.tgz", "integrity": "sha512-p0bK60CEzph1iqmnxut7d/1kyTmm3UWtPlwdkM31AU+LW+BXazd5zJdoCn7VFxNCHXRngPHRnsNn5uGjLRGndg==", + "dev": true, "license": "ISC", "dependencies": { "commander": "7", @@ -7456,6 +7481,7 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10" @@ -7486,6 +7512,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/d3-octree/-/d3-octree-1.1.0.tgz", "integrity": "sha512-F8gPlqpP+HwRPMO/8uOu5wjH110+6q4cgJvgJT6vlpy3BEaDIKlTZrgHKZSp/i1InRpVfh4puY/kvL6MxK930A==", + "dev": true, "license": "MIT" }, "node_modules/d3-path": { @@ -7528,6 +7555,7 @@ "version": "1.3.10", "resolved": "https://registry.npmjs.org/d3-regression/-/d3-regression-1.3.10.tgz", "integrity": "sha512-PF8GWEL70cHHWpx2jUQXc68r1pyPHIA+St16muk/XRokETzlegj5LriNKg7o4LR0TySug4nHYPJNNRz/W+/Niw==", + "dev": true, "license": "BSD-3-Clause" }, "node_modules/d3-sankey": { @@ -7692,6 +7720,7 @@ "version": "0.8.5", "resolved": "https://registry.npmjs.org/dagre/-/dagre-0.8.5.tgz", "integrity": "sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==", + "dev": true, "license": "MIT", "dependencies": { "graphlib": "^2.1.8", @@ -9016,6 +9045,7 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "dev": true, "license": "MIT" }, "node_modules/fetch-blob": { @@ -9388,6 +9418,7 @@ "version": "3.4.4", "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-3.4.4.tgz", "integrity": "sha512-latSnyDNt/8zYUB6VIJ6PCh2jBjJX6gnDsoCZ7LyW7GkqrD51EWwa9qCoGixj8YqBtETQK/xY7OmpTF8xz1DdQ==", + "dev": true, "license": "MIT" }, "node_modules/glob": { @@ -9595,6 +9626,7 @@ "version": "2.1.8", "resolved": "https://registry.npmjs.org/graphlib/-/graphlib-2.1.8.tgz", "integrity": "sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==", + "dev": true, "license": "MIT", "dependencies": { "lodash": "^4.17.15" @@ -9981,6 +10013,7 @@ "version": "1.4.1", "resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz", "integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==", + "dev": true, "license": "MIT", "dependencies": { "css-line-break": "^2.1.0", @@ -10254,12 +10287,14 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-any-array/-/is-any-array-3.0.0.tgz", "integrity": "sha512-o4h+tylWykC4BD1vaejp6gDxoM13bwW8FGuNs4yIKpj8xbBJcRxJx8vZpq0dCr7ZDEfeKjmsi/euolKhX6f/ww==", + "dev": true, "license": "MIT" }, "node_modules/is-arrayish": { "version": "0.3.4", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.4.tgz", "integrity": "sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==", + "dev": true, "license": "MIT" }, "node_modules/is-decimal": { @@ -10731,6 +10766,7 @@ "version": "4.18.1", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", + "dev": true, "license": "MIT" }, "node_modules/lodash-es": { @@ -11928,6 +11964,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ml-array-max/-/ml-array-max-2.0.0.tgz", "integrity": "sha512-QQZ4kENwpWmyNb98UXRDFXrmtIXuXtt1+bSbda/2KA85+F+rrJP8hZk6QOkCQXM2Th9mUDYdq/PNByPdT9ID4A==", + "dev": true, "license": "MIT", "dependencies": { "is-any-array": "^3.0.0" @@ -11937,6 +11974,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ml-array-min/-/ml-array-min-2.0.0.tgz", "integrity": "sha512-GRj6Ky6sW9vGL6yIjgsHmXZ9YgrdmcQ8nCxPqEGeKc6dkfYg1XDYxGFxADUjNuZyoCd5PUscWAS4N+cFaX6hFg==", + "dev": true, "license": "MIT", "dependencies": { "is-any-array": "^3.0.0" @@ -11946,6 +11984,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/ml-array-rescale/-/ml-array-rescale-2.0.0.tgz", "integrity": "sha512-2GGtKfSno94/kIloWGvpp/U5Q5vLvLrza+SAaGsLeo6Xj4mEbA6Gqx+oTfZFkxnd1grT2X007HfJNs3T5BsiVg==", + "dev": true, "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", @@ -11957,6 +11996,7 @@ "version": "6.15.0", "resolved": "https://registry.npmjs.org/ml-matrix/-/ml-matrix-6.15.0.tgz", "integrity": "sha512-wFa1v6KP8bKp+fj0nYmRs1Pb5K4zRkXGKsOvLinvILENFIADncm4XlOI+S1M7yuACMGfI6cfk0IifDgd4j5xmw==", + "dev": true, "license": "MIT", "dependencies": { "is-any-array": "^3.0.0", @@ -15965,6 +16005,7 @@ "version": "0.2.4", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.4.tgz", "integrity": "sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==", + "dev": true, "license": "MIT", "dependencies": { "is-arrayish": "^0.3.1" @@ -16212,6 +16253,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/svg-path-parser/-/svg-path-parser-1.1.0.tgz", "integrity": "sha512-jGCUqcQyXpfe38R7RFfhrMyfXcBmpMNJI/B+4CE9/Unkh98UporAc461GTthv+TVDuZXsBx7/WiwJb1Oh4tt4A==", + "dev": true, "license": "MIT" }, "node_modules/symbol-tree": { @@ -16278,6 +16320,7 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz", "integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==", + "dev": true, "license": "MIT", "dependencies": { "utrie": "^1.0.2" @@ -16877,6 +16920,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz", "integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==", + "dev": true, "license": "MIT", "dependencies": { "base64-arraybuffer": "^1.0.2" diff --git a/package.json b/package.json index 35ea2af3..687f852b 100644 --- a/package.json +++ b/package.json @@ -37,12 +37,12 @@ "remote-runtime:verify": "node build/remote-runtime-bundle.cjs verify", "remote-runtime:import": "node build/remote-runtime-bundle.cjs import", "release:notes:verify": "node build/release-notes.cjs", - "dist": "npm run build && electron-builder", - "dist:win": "npm run build && electron-builder --win nsis --x64 --arm64", - "dist:mac": "npm run build && electron-builder --mac dmg --x64 --arm64", + "dist": "npm run build && node build/run-electron-builder.cjs", + "dist:win": "npm run build && node build/run-electron-builder.cjs --win nsis --x64 --arm64", + "dist:mac": "npm run build && node build/run-electron-builder.cjs --mac dmg --x64 --arm64", "dist:linux": "npm run dist:linux:x64 && npm run dist:linux:arm64", - "dist:linux:x64": "npm run build && electron-builder --linux AppImage deb rpm --x64", - "dist:linux:arm64": "npm run build && electron-builder --linux AppImage deb rpm --arm64", + "dist:linux:x64": "npm run build && node build/run-electron-builder.cjs --linux AppImage deb rpm --x64", + "dist:linux:arm64": "npm run build && node build/run-electron-builder.cjs --linux AppImage deb rpm --arm64", "icons": "node build/generate-icons.mjs", "release:package": "node build/build-release.cjs", "portable": "node build/build-portable.cjs" @@ -259,7 +259,6 @@ }, "dependencies": { "@agentclientprotocol/sdk": "0.25.1", - "@antv/g6": "^5.1.1", "@deepseek-ai/cordis": "4.0.1", "@deepseek-ai/dsh-agent": "0.1.0-rc.8", "@deepseek-ai/dsh-agent-loop": "0.1.0-rc.8", @@ -324,6 +323,7 @@ "zod": "^4.4.3" }, "devDependencies": { + "@antv/g6": "^5.1.1", "@continuedev/cli": "1.5.47", "@eslint/js": "^10.0.1", "@fontsource-variable/inter": "^5.3.0", diff --git a/tests/electron-builder-wrapper.test.ts b/tests/electron-builder-wrapper.test.ts new file mode 100644 index 00000000..1372b21a --- /dev/null +++ b/tests/electron-builder-wrapper.test.ts @@ -0,0 +1,65 @@ +import { createRequire } from 'node:module' +import { describe, expect, it } from 'vitest' + +interface ElectronBuilderLogModule { + LogMessageByKey: { + PKG_DUPLICATE_REF: string + PKG_DUPLICATE_REF_UNRESOLVED: string + } + logMessageLevelByKey: Record +} + +interface ElectronBuilderWrapper { + configureElectronBuilderLogLevels: ( + moduleManager?: ElectronBuilderLogModule + ) => void +} + +const require = createRequire(import.meta.url) +const { configureElectronBuilderLogLevels } = require( + '../build/run-electron-builder.cjs' +) as ElectronBuilderWrapper + +describe('electron-builder logging', () => { + it('keeps unresolved dependencies visible while hiding resolved duplicate references', () => { + const moduleManager: ElectronBuilderLogModule = { + LogMessageByKey: { + PKG_DUPLICATE_REF: 'duplicate dependency references', + PKG_DUPLICATE_REF_UNRESOLVED: + 'unresolved duplicate dependency references' + }, + logMessageLevelByKey: { + 'duplicate dependency references': 'info', + 'unresolved duplicate dependency references': 'warn' + } + } + + configureElectronBuilderLogLevels(moduleManager) + + expect( + moduleManager.logMessageLevelByKey[ + 'duplicate dependency references' + ] + ).toBe('debug') + expect( + moduleManager.logMessageLevelByKey[ + 'unresolved duplicate dependency references' + ] + ).toBe('warn') + }) + + it('fails clearly when the installed builder contract changes', () => { + expect(() => + configureElectronBuilderLogLevels({ + LogMessageByKey: { + PKG_DUPLICATE_REF: '', + PKG_DUPLICATE_REF_UNRESOLVED: + 'unresolved duplicate dependency references' + }, + logMessageLevelByKey: {} + }) + ).toThrow( + '当前 electron-builder 不支持依赖引用日志级别配置' + ) + }) +})