{
  "version": "https://jsonfeed.org/version/1", 
  "title": "Electron", 
  "description": "Build cross platform desktop apps with JavaScript, HTML, and CSS.", 
  "home_page_url": "https://www.v2ex.com/go/electron", 
  "feed_url": "https://www.v2ex.com/feed/electron.json", 
  "icon": "https://cdn.v2ex.com/navatar/ef4e/3b77/955_large.png?m=1636006038", 
  "favicon": "https://cdn.v2ex.com/navatar/ef4e/3b77/955_normal.png?m=1636006038", 
  "items": [
    {
      "author": {
        "url": "https://www.v2ex.com/member/albatron", 
        "name": "albatron", 
        "avatar": "https://cdn.v2ex.com/avatar/06f1/138f/759731_large.png?m=1753768822"
      }, 
      "url": "https://www.v2ex.com/t/1192247", 
      "title": "electron-vite \u521b\u5efa\u7684\u9879\u76ee\uff0c\u7ecf preload \u6302\u8f7d\u7684 api \u5728\u6d4f\u89c8\u5668\u4e2d\u6253\u5370\u51fa\u6765\u662f undefined\uff0c\u6709\u4eba\u9047\u5230\u8fc7\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1192247", 
      "date_published": "2026-02-11T07:19:51+00:00", 
      "content_html": "<p>\u7c7b\u4f3c\u4e8e\u8fd9\u4e2a issue\uff1a <a href=\"https://github.com/alex8088/electron-vite/issues/111\" rel=\"nofollow\">https://github.com/alex8088/electron-vite/issues/111</a></p>\n<p>\u4e0d\u8fc7\u6211\u770b\u539f\u5e16\u6700\u540e\u4e5f\u6ca1\u7ed9\u51fa\u95ee\u9898\u7684\u539f\u56e0\uff0c\u672c\u60f3\u501f\u4f4f ai \u628a\u7ad9\u957f\u7684 planet \u5de5\u5177\u8fc1\u79fb\u5230 windows \u4e0a\uff0c\u7ed3\u679c\u521a\u5efa\u9879\u76ee\u5c31\u5361\u4f4f\u4e86\uff0cai \u4e5f\u89e3\u51b3\u4e0d\u4e86\uff0c\u96be\u7ef7...</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bingoso", 
        "name": "bingoso", 
        "avatar": "https://cdn.v2ex.com/avatar/ad6f/6f62/718049_large.png?m=1774501686"
      }, 
      "url": "https://www.v2ex.com/t/1186366", 
      "title": "\u5341\u5e74\u524d\u5f00\u53d1\u7684 elctron \u5e94\u7528\u81f3\u4eca\u5b8c\u7f8e\u8fd0\u884c\uff0c\u5341\u5e74\u540e\u7684 tauri \u5e94\u7528\u53ef\u4ee5\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1186366", 
      "date_published": "2026-01-16T19:41:07+00:00", 
      "content_html": "<h4>\u5927\u6982\u662f<strong>2016 \u5e74</strong>\u5427\uff0c</h4>\n<p>\u5f53\u65f6\u7528\u7684\u662f ele 1.7x \uff0c\u7ed9\u516c\u53f8\u5f00\u53d1\u4e86\u4e00\u4e2a\u7b80\u6613\u7684 erp \u67e5\u8be2\u7cfb\u7edf\u3002\u4eca\u5929\u65e0\u610f\u4e2d\u5728\u7f51\u76d8\u4e2d\u627e\u5230\u4e86\u5f53\u5e74\u7684 release \u538b\u7f29\u5305\uff0cwin11 \u4e0b\u89e3\u538b\u8fd0\u884c\uff0c\u4ecd\u65e7\u548c win7 \u65f6\u4ee3\u7684\u663e\u793a\u6548\u679c\u4e00\u6a21\u4e00\u6837\u3002</p>\n<h4>\u5927\u6982\u662f<strong>2006 \u5e74</strong>\u5427\uff0c</h4>\n<p>\u5f53\u5e74\u7528<code>flash</code>\u5f00\u53d1\u7684\u540c\u5b66\u76f8\u518c\uff0c\u73b0\u5728\u5728<code>windows11</code>\u4e0b\u5df2\u7ecf\u6253\u4e0d\u5f00\u4e86\u3002</p>\n<p><strong><code>electron</code>\u81ea\u5e26\u6d4f\u89c8\u5668\u7684\u7279\u6027\uff0c\u8ba9\u8001\u65e7\u9879\u76ee\u57fa\u672c\u65e0\u89c6\u65b0\u7cfb\u7edf\u7684\u66f4\u8fed\u3002<code>tauri</code>\u7528\u7684\u662f\u7cfb\u7edf\u5185\u7f6e<code>webview</code>\uff0c\u5341\u5e74\u540e\u6253\u5f00\u8fd8\u80fd\u6253\u5f00\u5417\uff1f</strong></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huangyezhufeng", 
        "name": "huangyezhufeng", 
        "avatar": "https://cdn.v2ex.com/avatar/c6bf/ce8d/174807_large.png?m=1732972431"
      }, 
      "url": "https://www.v2ex.com/t/1184456", 
      "date_modified": "2026-01-10T10:49:28+00:00", 
      "content_html": "\u8bf7\u6559\u4e2a Electron App \u5305\u7ba1\u7406\u5de5\u5177\u7684\u95ee\u9898\u3002\u76ee\u524d\u662f\u7528 Bun \u7ba1\u7406\uff0c\u4e5f\u4f9d\u8d56\u4e86 better-sqlite3, \u7136\u540e\u53d1\u73b0\u9891\u7e41\u9047\u5230 better-sqlite3 \u7f16\u8bd1\u7684\u7248\u672c\u4e0d\u4e00\u81f4\u7684\u95ee\u9898...\u6240\u4ee5\u95ee\u4e0b\u5927\u5bb6\u6709\u6ca1\u6709\u9047\u5230\u8fc7\u8fd9\u79cd\u95ee\u9898\uff0c\u7136\u540e", 
      "date_published": "2026-01-10T09:00:43+00:00", 
      "title": "\u7528\u4ec0\u4e48\u6765\u7ba1\u7406 Electron App + better-sqlite3 \u7684\uff1f", 
      "id": "https://www.v2ex.com/t/1184456"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/muunala10221", 
        "name": "muunala10221", 
        "avatar": "https://cdn.v2ex.com/avatar/00fd/17cf/499312_large.png?m=1722593567"
      }, 
      "url": "https://www.v2ex.com/t/1141262", 
      "title": "\u8bf7\u6559\u95ee\u9898\uff0c\u63a5\u89e6 Electron \u5f00\u53d1\u4e0d\u4e45\uff0c\u5982\u4f55\u4fbf\u6377\u7684\u5728\u4e0d\u540c\u7248\u672c\u7cfb\u7edf\\\u786c\u4ef6\u8bbe\u5907\u4e0a\u65b9\u4fbf\u6d4b\u8bd5\u7a0b\u5e8f", 
      "id": "https://www.v2ex.com/t/1141262", 
      "date_published": "2025-06-26T09:05:38+00:00", 
      "content_html": "\u8bf7\u6559"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Atma", 
        "name": "Atma", 
        "avatar": "https://cdn.v2ex.com/gravatar/b1c15e72c553eb28c13984ff07fdfa27?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1139757", 
      "title": "mac \u7a0b\u5e8f\u7b7e\u540d\u516c\u8bc1\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1139757", 
      "date_published": "2025-06-19T13:23:00+00:00", 
      "content_html": "<p>\u4eca\u5929\u5728\u4e00\u4e2a\u7528\u6237\u7535\u8111\u4e0a\u9047\u5230\u4e00\u4e2a\u548c\u8fd9\u4e2a issue \u4e00\u6837\u7684\u95ee\u9898:\n<a href=\"https://github.com/electron/electron/issues/46520\" rel=\"nofollow\">https://github.com/electron/electron/issues/46520</a></p>\n<p>\u7a0b\u5e8f\u521a\u521a\u542f\u52a8 gpu \u548c network \u8fdb\u7a0b\u5c31\u5d29\u6e83\uff0c\u4e00\u5f00\u59cb\u6000\u7591\u7cfb\u7edf\u95ee\u9898\uff0c\u6240\u4ee5</p>\n<p>\u4ece 13 \u5347\u7ea7\u5230 15 \uff0c\u4f46\u662f\u95ee\u9898\u4f9d\u65e7\uff0c\u6240\u4ee5\u91cd\u65b0\u56de\u5230 issue \uff0c\u6211\u91cd\u65b0\u6253\u5305\u53bb\u9664\u4e86\u7b7e\u540d\u548c\u516c\u8bc1</p>\n<p>\u542f\u52a8\u6b63\u5e38\u4e86\u3002\u8fd9\u91cc\u6709\u4e2a\u7591\u95ee\u5c31\u662f\u76f8\u540c\u7684\u7ebf\u4e0a\u5305\u5176\u4ed6\u7528\u6237\u90fd\u6ca1\u95ee\u9898\uff0c\u5386\u53f2\u7684\u5305\u4e5f\u5b89\u88c5\u8bd5\u8fc7\u4e86\uff0c</p>\n<p>\u76ee\u524d\u5148\u63d0\u4f9b\u4e86\u672a\u7b7e\u540d\u5305\u7ed9\u7528\u6237\u4f7f\u7528\u3002</p>\n<p>\u60f3\u95ee\u4e0b\u5bf9\u82f9\u679c\u5f00\u53d1\u6bd4\u8f83\u719f\u6089\u7684\u4f19\u4f34\uff0c\u5173\u4e8e Mac \u4e0a\u8f6f\u4ef6\u542f\u52a8\u7b7e\u540d\u6821\u9a8c\u8fd9\u4e2a\u73af\u8282\uff0c\u60f3\u4ece\u7cfb\u7edf\u4e0a\u627e\u4e00\u4e0b\u76f8\u5173\u7684\u65e5\u5fd7\u786e\u8ba4\u4e0b\u539f\u56e0</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/guobaiyi", 
        "name": "guobaiyi", 
        "avatar": "https://cdn.v2ex.com/gravatar/931ff920c784750adcdb75efd1a551fe?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1127801", 
      "title": "elctron \u5f00\u53d1\u6559\u7a0b\u6848\u4f8b\u89e3\u6790\uff1a\u6a21\u62df\u771f\u4eba\u4f7f\u7528\u201c\u9ad8\u5fb7\u5730\u56fe\u201d\uff0c\u8282\u7701\u6570\u636e API \u91c7\u8d2d\u8d39\u7528", 
      "id": "https://www.v2ex.com/t/1127801", 
      "date_published": "2025-04-24T07:39:56+00:00", 
      "content_html": "<p><strong>\u6458\u8981\uff1a</strong>\n\u672c\u9879\u76ee\u6d89\u53ca\u5230\u7684 electron \u5f00\u53d1\u539f\u7406\uff1a\n1 \u7a97\u53e3\u7ba1\u7406\n2 \u811a\u672c\u6ce8\u5165\n3 \u8fdb\u7a0b\u95f4\u901a\u4fe1\n4 webcontents \u7684\u4f7f\u7528\n5 sqlite \u5b58\u50a8\n6 \u591a\u5e73\u53f0\u6253\u5305</p>\n<p><strong>\u5185\u5bb9</strong></p>\n<h1>\uff08\u4e00\uff09\u80cc\u666f</h1>\n<p>\u8fd9\u7bc7\u6587\u7ae0\u8bb2\u89e3\u5982\u4f55\u5229\u7528 electron \u6280\u672f\uff0c\u6a21\u62df\u771f\u4eba\u64cd\u4f5c\uff0c\u6765\u6293\u53d6\u9ad8\u5fb7\u5730\u56fe Api \u6570\u636e\u7684\u3002<strong>\u5229\u7528 electron \u5f3a\u5927\u7684\u7f51\u9875\u63a7\u5236\u6280\u672f\uff0c\u901a\u8fc7\u7ed1\u5b9a\u7f51\u9875\u8c03\u8bd5\u63a7\u5236\u53f0\uff0c\u6765\u89e3\u6790\u5728\u63a7\u5236\u53f0\u51fa\u73b0\u7684 http \u8bf7\u6c42\u548c\u83b7\u53d6 http \u54cd\u5e94\u3002</strong></p>\n<p><strong>\u5229\u7528 electron \u6280\u672f\u89e3\u6790\u63a7\u5236\u53f0\u7684 http \u8bf7\u6c42</strong>\uff0c\u8fd9\u6837\u505a\u7684\u597d\u5904\u662f\uff0c</p>\n<ul>\n<li>\u6613\u7528\u6027\uff1a\u5b8c\u5168\u4e0d\u7528\u7834\u89e3\u63a5\u53e3\u6765\u83b7\u53d6\u5bc6\u94a5\uff0c\u53ea\u8981\u5c06\u7f51\u9875\u52a0\u8f7d\u5230 electron \u7a97\u53e3\u5373\u53ef\uff0c</li>\n<li>\u901a\u7528\u6027\uff1a\u4e0d\u4ec5\u662f\u9ad8\u5fb7\u5730\u56fe\uff0c\u53ea\u8981\u662f\u7f51\u9875\u7aef\u5e76\u4e14\u6570\u636e\u901a\u8fc7\u63a5\u53e3\u8fd4\u56de\uff0c\u90fd\u80fd\u7528\u8fd9\u4e2a\u65b9\u6cd5\u3002</li>\n<li>\u6613\u5206\u53d1\uff1a\u5c06\u8f6f\u4ef6\u6253\u5305\u53d1\u7ed9\u591a\u4eba\uff0c\u6bcf\u4e2a\u4eba\u90fd\u53ef\u4ee5\u5728\u672c\u5730\u5f00\u5c55\u722c\u53d6\u4efb\u52a1\u3002</li>\n</ul>\n<p>\u6b22\u8fce\u8bbf\u95ee\u6211\u7684<a href=\"https://electronjs.tech/Basic/initialization/QuickStart\" rel=\"nofollow\">electron \u8bfe\u7a0b\u7f51</a>\u8fdb\u4e00\u6b65\u6c9f\u901a\u4ea4\u6d41\uff01</p>\n<h1>\uff08\u4e8c\uff09 electron \u722c\u866b\u795e\u5668\u64cd\u4f5c\u6f14\u793a</h1>\n<p>\u5f85\u4e0a\u4f20</p>\n<h1>\uff08\u4e09\uff09 electron \u80fd\u6293\u53d6\u54ea\u4e9b\u9ad8\u5fb7\u5730\u56fe\u6570\u636e\uff1f</h1>\n<p><strong>\u5982\u4e0b 5 \u4e2a\u516c\u5f00\u63a5\u53e3\u6570\u636e</strong>\uff1a</p>\n<ul>\n<li>\n<p>\u5730\u7406\u7f16\u7801/\u9006\u5730\u7406\u7f16\u7801 /service/regeo\n<img class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://miaosky.oss-cn-beijing.aliyuncs.com/ip/202504241505848.png\"/></p>\n</li>\n<li>\n<p>\u641c\u7d22\u63a8\u8350\u5217\u8868 /service/poiTipsSearchlite\n<img class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://miaosky.oss-cn-beijing.aliyuncs.com/ip/202504241505847.png\"/></p>\n</li>\n<li>\n<p>\u5730\u70b9\u8be6\u7ec6\u6570\u636e /service/poiInfo\n<img class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://miaosky.oss-cn-beijing.aliyuncs.com/ip/202504241505845.png\"/></p>\n</li>\n<li>\n<p>\u8def\u7ebf\u4fe1\u606f /service/poiInfoPlan\n<img class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://miaosky.oss-cn-beijing.aliyuncs.com/ip/202504241505846.png\"/></p>\n</li>\n<li>\n<p>\u5929\u6c14\u9884\u62a5/service/weather\n<img class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://miaosky.oss-cn-beijing.aliyuncs.com/ip/202504241505849.png\"/></p>\n</li>\n</ul>\n<h1>\uff08\u56db\uff09\u6d89\u53ca\u7684 electron \u5f00\u53d1\u6280\u672f</h1>\n<p><strong>1 \u7a97\u53e3\u7ba1\u7406</strong>\n\u65b0\u5f00\u7a97\u53e3\uff1a\u64cd\u4f5c\u9875\u9762\u53d1\u6d88\u606f\u7ed9\u540e\u53f0\uff0c\u8981\u6c42\u65b0\u5f00\u7a97\u53e3\u3002\u53ef\u4ee5\u901a\u8fc7\u64cd\u4f5c\u9875\u9762\u8bbe\u7f6e URL \u5730\u5740\u540e\uff0c\u6765\u63a7\u5236\u65b0\u7a97\u53e3\u7684 URL \u3002</p>\n<p><strong>2 \u811a\u672c\u6ce8\u5165</strong>\nelectron \u4e3a\u4fdd\u969c\u7cfb\u7edf\u6309\u94ae\uff0c\u8ba9\u63a7\u5236\u9875\u9762\u548c\u540e\u53f0\u65e0\u6cd5\u76f4\u63a5\u8c03\u7528\u65b9\u6cd5\uff0c\u4f46\u662f\u53ef\u4ee5\u901a\u8fc7\u811a\u672c\u6ce8\u5165\u7684\u65b9\u6cd5\u5efa\u7acb\u901a\u4fe1\u7684\u6865\u6881\uff0c\u8fd9\u6837\u63a7\u5236\u9875\u9762\u901a\u8fc7\u6865\u6881\u53ef\u4ee5\u547d\u4ee4\u540e\u53f0\u505a\u4e00\u4e9b\u4e8b\u60c5\u3002</p>\n<p><strong>3 \u8fdb\u7a0b\u95f4\u901a\u4fe1</strong>\n\u63a7\u5236\u9875\u9762\u548c\u540e\u53f0\u4e4b\u95f4\u7684\u901a\u4fe1\uff0c\u6709 4 \u79cd\u901a\u4fe1\u65b9\u5f0f\uff1a\u63a7\u5236\u9875\u9762-&gt;\u540e\u53f0\u3001\u540e\u53f0-&gt;\u63a7\u5236\u9875\u9762\u3001\u540e\u53f0&lt;-&gt;\u63a7\u5236\u9875\u9762\u3001\u63a7\u5236\u9875\u9762 A-&gt;\u63a7\u5236\u9875\u9762 B</p>\n<p><strong>4 \u7f51\u9875\u5185\u5bb9\u63a7\u5236</strong>\n\u63a7\u5236\u7f51\u9875\u7684\u5143\u7d20\uff0c\u4ece\u800c\u66ff\u4ee3\u4eba\u5de5\u64cd\u4f5c\u5b9e\u884c\u64cd\u4f5c\u81ea\u52a8\u5316\u3002\u6bd4\u5982\u6a21\u62df\u4eba\u6765\u8f93\u5165\u3001\u6a21\u62df\u4eba\u6765\u70b9\u51fb\u6309\u94ae\u3001\u6a21\u62df\u4eba\u6765\u6ed1\u52a8\u9875\u9762\u7b49\u3002</p>\n<p><strong>5 \u6570\u636e\u5b58\u50a8 sqlite</strong>\n\u9047\u5230\u5927\u6570\u636e\u672c\u5730\u5b58\u50a8\uff0csqlite+prisma \u662f\u4e00\u79cd\u5f88\u597d\u7684\u65b9\u6848\uff0c\u5f62\u540c\u4e8e mysql+orm \u7684\u5f62\u5f0f\u5b58\u50a8\u6570\u636e\u5728\u7528\u6237\u672c\u5730\u7535\u8111\u3002</p>\n<p><strong>6 \u6253\u5305\u53d1\u5e03</strong>\nelectronbuilding + githubaction \u7684\u7ec4\u5408\uff0c\u8f7b\u677e\u5b9e\u73b0\u6253\u5305\u81ea\u7531\u3002</p>\n<hr/>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jakcy26", 
        "name": "jakcy26", 
        "avatar": "https://cdn.v2ex.com/avatar/2ae4/36e0/303263_large.png?m=1743513931"
      }, 
      "url": "https://www.v2ex.com/t/1123771", 
      "title": "electron \u600e\u4e48\u5f00\u542f\u72ec\u7acb\u7a97\u53e3\u800c\u4e0d\u589e\u52a0\u6e32\u67d3\u8fdb\u7a0b\uff1f", 
      "id": "https://www.v2ex.com/t/1123771", 
      "date_published": "2025-04-07T08:32:53+00:00", 
      "content_html": "<p>\u5982\u9898\uff0c\u5728 electron \u5f00\u53d1\u4e2d\uff0c\u5982\u4f55\u65b0\u5f00\u4e00\u4e2a\u72ec\u7acb\u7a97\u53e3\uff0c\u8ba9\u6e32\u67d3\u8fdb\u7a0b\u8ddf\u7740\u5bf9\u5e94\u589e\u52a0\u3002\u600e\u4e48\u5b9e\u73b0\u5462?</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/johnlin", 
        "name": "johnlin", 
        "avatar": "https://cdn.v2ex.com/gravatar/797de564ba63fdaff23bb4f6427bc809?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1123170", 
      "date_modified": "2025-04-04T02:56:34+00:00", 
      "content_html": "\u9879\u76ee\u6253\u5305\u6210 dmg \u53ef\u4ee5\u6b63\u5e38\u4f7f\u7528\uff0c\u4f46\u662f\u6253\u5305\u6210 exe \u5c31\u4e0d\u884c<br />{<br />  \"name\": \"electron-app\",<br />  \"version\": \"1.0.0\",<br />  \"description\": \"An Electron application with Vue and TypeScript\",<br />  \"main\": \"./out/main/index.js\",<br />  \"author\": \"<a target=\"_blank\" href=\"http://example.com\" rel=\"nofollow noopener\">example.com</a>\",<br />  \"homepage\": \"<a target=\"_blank\" href=\"https://www.electronjs.org\" rel=\"nofollow noopener\">https://www.electronjs.org</a>\",<br />  \"scripts\": {<br />    \"format\": \"prettier --write .\",<br />    \"lint\": \"eslint . --ext .js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts,.vue --fix\",<br />    \"typecheck:node\": \"tsc --noEmit -p tsconfig.node.json --composite false\",<br />    \"typecheck:web\": \"vue-tsc --noEmit -p tsconfig.web.json --composite false\",<br />    \"typecheck\": \"npm run typecheck:node &amp;&amp; npm run typecheck:web\",<br />    \"start\": \"electron-vite preview\",<br />    \"dev\": \"electron-vite dev\",<br />    \"build\": \"electron-vite build\",<br />    \"postinstall\": \"electron-builder install-app-deps\",<br />    \"build:win\": \"npm run build &amp;&amp; electron-builder --win --config --dir\",<br />    \"build:mac\": \"npm run build &amp;&amp; electron-builder --mac --config\",<br />    \"build:linux\": \"npm run build &amp;&amp; electron-builder --linux --config\"<br />  },<br />  \"dependencies\": {<br />    \"@electron-toolkit/preload\": \"^2.0.0\",<br />    \"@electron-toolkit/utils\": \"^2.0.0\",<br />    \"@element-plus/icons-vue\": \"^2.3.1\",<br />    \"axios\": \"^1.6.2\",<br />    \"crypto-js\": \"^4.2.0\",<br />    \"element-plus\": \"^2.4.3\",<br />    \"pinia\": \"^2.1.7\",<br />    \"pinia-plugin-persist\": \"^1.0.0\",<br />    \"rfdc\": \"^1.3.0\",<br />    \"vue-i18n\": \"^9.8.0\",<br />    \"vue-router\": \"^4.2.5\"<br />  },<br />  \"devDependencies\": {<br />    \"@electron-toolkit/eslint-config\": \"^1.0.1\",<br />    \"@electron-toolkit/eslint-config-ts\": \"^1.0.0\",<br />    \"@electron-toolkit/tsconfig\": \"^1.0.1\",<br />    \"@rushstack/eslint-patch\": \"^1.3.3\",<br />    \"@types/node\": \"^18.17.5\",<br />    \"@vitejs/plugin-vue\": \"^4.3.1\",<br />    \"@vue/eslint-config-prettier\": \"^8.0.0\",<br />    \"@vue/eslint-config-typescript\": \"^11.0.3\",<br />    \"electron\": \"^25.6.0\",<br />    \"electron-builder\": \"^24.6.3\",<br />    \"electron-vite\": \"^1.0.27\",<br />    \"eslint\": \"^8.47.0\",<br />    \"eslint-plugin-vue\": \"^9.17.0\",<br />    \"less\": \"^4.2.0\",<br />    \"prettier\": \"^3.0.2\",<br />    \"sass\": \"^1.69.5\",<br />    \"typescript\": \"^5.1.6\",<br />    \"unplugin-auto-import\": \"^0.17.2\",<br />    \"unplugin-vue-components\": \"^0.26.0\",<br />    \"vite\": \"^4.4.9\",<br />    \"vue\": \"^3.3.4\",<br />    \"vue-tsc\": \"^1.8.8\"<br />  },<br />  \"build\": {<br />    \"win\": {<br />      \"target\": [<br />        {<br />          \"target\": \"nsis\",<br />          \"arch\": [\"x64\"]<br />        }<br />      ],<br />      \"icon\": \"build/icon.ico\"<br />    },<br />    \"nsis\": {<br />      \"oneClick\": false,<br />      \"allowToChangeInstallationDirectory\": true,<br />      \"createDesktopShortcut\": true,<br />      \"createStartMenuShortcut\": true,<br />      \"shortcutName\": \"\u68c0\u6d4b\u7cfb\u7edf\"<br />    }<br />  }<br />}", 
      "date_published": "2025-04-03T09:05:44+00:00", 
      "title": "electron \u9879\u76ee\u6253\u5305\u6210 exe\uff0c windows10 \u5b89\u88c5\u540e\u6253\u5f00\u4e0d\u4e86\u3002\u4e00\u76f4\u63d0\u793a\u7f3a\u5c11\u5feb\u6377\u65b9\u5f0f\u3002\u6709\u6ca1\u6709\u5927\u4f6c\u9047\u5230\u8fc7\u7c7b\u4f3c\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1123170"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/jakcy26", 
        "name": "jakcy26", 
        "avatar": "https://cdn.v2ex.com/avatar/2ae4/36e0/303263_large.png?m=1743513931"
      }, 
      "url": "https://www.v2ex.com/t/1122681", 
      "title": "electron \u65b0\u5f00\u72ec\u7acb\u7a97\u53e3\u5185\u5b58\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1122681", 
      "date_published": "2025-04-01T13:28:05+00:00", 
      "content_html": "<p>\u90fd\u8bf4 electron \u65b0\u5f00\u4e00\u4e2a\u72ec\u7acb\u7a97\u53e3\uff0c\u6e32\u67d3\u8fdb\u7a0b\u5c31\u4f1a\u65b0\u589e\u4e00\u4e2a\uff0c\u5bfc\u81f4\u5185\u5b58\u98d9\u5347\uff0c\u4f46\u6211\u770b vscode \u65b0\u5f00\u4e00\u4e2a\u72ec\u7acb\u7a97\u53e3\uff0c\u6e32\u67d3\u8fdb\u7a0b\u5e76\u4e0d\u4f1a\u65b0\u589e\u4e00\u4e2a\u3002\n\u6709\u5927\u795e\u7814\u7a76\u8fc7\u5417\uff1f \u600e\u4e48\u8ba9\u6253\u5f00\u72ec\u7acb\u7a97\u53e3\u5185\u5b58\u4e0d\u589e\u52a0\u90a3\u4e48\u591a</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lpe234", 
        "name": "lpe234", 
        "avatar": "https://cdn.v2ex.com/avatar/e21b/feea/133262_large.png?m=1760937293"
      }, 
      "url": "https://www.v2ex.com/t/1120098", 
      "date_modified": "2025-03-22T00:49:13+00:00", 
      "content_html": "<p>\u7c7b\u4f3c\u8fdc\u7a0b\u9a7e\u9a76\u8231\u573a\u666f\u3002\u524d\u540e\u76f8\u540c\u5927\u5e26\u9c7c\u5c4f\uff0c\u5de6\u53f3\u76f8\u540c\u5c0f\u5e26\u9c7c\u5c4f\uff0c\u8fd8\u6709 2 \u4e2a\u5c0f\u5c4f\u3002</p>\n<p>\u4e4b\u524d\u672c\u5730\u7b14\u8bb0\u672c\u8fde\u63a5\u663e\u793a\u5668\u6d4b\u8bd5\uff0c\u53ea\u6709\u6362\u663e\u793a\u5668\u7684\u573a\u666f\u4e0b displayId(Electron \u83b7\u53d6\u7684\u5c4f\u5e55 ID)\u624d\u4f1a\u53d8\u3002</p>\n<p>\u73b0\u5728\u6362\u53f0\u5f0f\u673a\u4e4b\u540e\u3002\u6bcf\u6b21\u91cd\u542f \u6216\u8005 \u5207\u6362\u673a\u7bb1\u663e\u793a\u5668\u8fde\u63a5\u53e3\u540e\uff0cdisplayId \u90fd\u4f1a\u53d8\u3002\u5bfc\u81f4\u6bcf\u6b21\u90fd\u8981\u91cd\u65b0\u914d\u7f6e\u6620\u5c04\uff0c\u624d\u80fd\u6b63\u5e38\u663e\u793a\u3002</p>\n<p>\u6709\u6ca1\u6709\u54ea\u4f4d\u8001\u54e5\u9047\u5230\u8fd9\u79cd\u95ee\u9898</p>\n<hr/>\n<p>electron \u4e2d\u5199\u4e86\u7c7b\u4f3c\u4e0b\u9762\u7684\u6620\u5c04\u5173\u7cfb\u3002</p>\n<p>const dispalyMaps = {\n\"id-xxxx01\": \"http://xxxx.xx/front\",\n\"id-xxxx02\": \"http://xxxx.xx/back\",\n}</p>\n", 
      "date_published": "2025-03-21T04:40:34+00:00", 
      "title": "\u6c42\u52a9\uff01\u53cc\u663e\u5361\u8fde\u63a5 6 \u4e2a\u5c4f\u5e55\uff0c\u5c55\u793a\u4e0d\u540c\u7684 URL \u9875\u9762\u3002Electron \u7684 displayId \u6bcf\u6b21\u91cd\u542f\u90fd\u4f1a\u53d8", 
      "id": "https://www.v2ex.com/t/1120098"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Aruis", 
        "name": "Aruis", 
        "avatar": "https://cdn.v2ex.com/gravatar/a23bfcd815b30b4e933dbec53cd22966?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1113884", 
      "title": "Electron \u70ed\u66f4\u65b0\u6280\u672f", 
      "id": "https://www.v2ex.com/t/1113884", 
      "date_published": "2025-02-24T09:06:09+00:00", 
      "content_html": "<p>Electron \u70ed\u66f4\u65b0\u6709\u4ec0\u4e48\u65b9\u6848\u5417\uff1f</p>\n<p>\u73b0\u5728\u4f7f\u7528\u7684\u662f electron-builder</p>\n<p>electron-builder \u53ea\u6709\u6574\u5305\u66f4\u65b0\uff0c\u6709\u6ca1\u6709\u5176\u5b83\u70ed\u66f4\u65b0\u7684\u65b9\u6848\u63a8\u8350</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/178620086", 
        "name": "178620086", 
        "avatar": "https://cdn.v2ex.com/avatar/081d/3db7/103341_large.png?m=1500629629"
      }, 
      "url": "https://www.v2ex.com/t/1103614", 
      "title": "\u5982\u4f55\u81ea\u5df1\u5b9e\u73b0\u7c7b\u4f3c c-Lodop \u7684\u4e0d\u4e2d\u65ad\u6253\u5370\u6548\u679c\uff1f", 
      "id": "https://www.v2ex.com/t/1103614", 
      "date_published": "2025-01-08T09:27:43+00:00", 
      "content_html": "<h2>\u80cc\u666f\uff1a</h2>\n<p>\u5728\u5f00\u53d1\u4e00\u6b3e\u53ef\u4ee5\u672c\u5730\u8fd0\u884c\u7684\u7a0b\u5e8f\uff0c\u7528\u6765\u63a5\u53d7\u7f51\u9875\u7aef\u4f20\u9012\u8fc7\u6765\u7684\u6253\u5370\u8bf7\u6c42\uff08 html \u4ee3\u7801\u6bb5\uff09\u5176\u4e2d\u5305\u542b\u6587\u672c\uff0c\u56fe\u7247\uff0c\u8868\u683c\uff0c\u5185\u5bb9\u8f83\u957f\uff0c\u4f7f\u7528\u7684\u662f\u7231\u666e\u751f\u9488\u5f0f\u6253\u5370\u673a\uff0c\u53ef\u4ee5\u8fde\u7eed\u8fdb\u7eb8\u3002</p>\n<h2>\u5df2\u7ecf\u5c1d\u8bd5\u8fc7\u7684\u65b9\u6848\uff1a</h2>\n<ol>\n<li>\n<p>\u4f7f\u7528 electron \u6253\u5370\u529f\u80fd\uff08 print \uff09\u8fdb\u884c\u6253\u5370\uff0c\u6307\u5b9a\u4e00\u4e2a\u81ea\u5b9a\u4e49\u7684\u9875\u9762\u5bbd\u9ad8\uff0c\u6253\u5370\u540e\u53ea\u6709\u4e00\u9875\u957f\u5ea6</p>\n</li>\n<li>\n<p>\u4f7f\u7528 electron \u7684\u5bfc\u51fa PDF \u5c06 html \u5bfc\u51fa\u4e3a\u4e00\u4e2a\u5355\u9875\u957f pdf \u540e\u4f7f\u7528 pdftoprinter \u6216 SumatraPDF \u6216 GhostScript \u8fdb\u884c\u6253\u5370\u5747\u65e0\u6cd5\u5b9e\u73b0\u6253\u5370\u51fa\u5b8c\u6574\u7684\u9875\u9762\u9ad8\u5ea6\u3002</p>\n</li>\n</ol>\n<h2>\u95ee\u9898\uff1a \u8bf7\u95ee\u5982\u4f55\u5b9e\u73b0\u51fa C-Lodop \u7684\u65e0\u7f1d\u957f\u9875\u9762\u6253\u5370\u6548\u679c\u3002</h2>\n<p>\u671f\u671b\u4f7f\u7528\uff1aelectron \u5b9e\u73b0</p>\n<h2>\u76f8\u5173\u63d0\u95ee\u5730\u5740\uff1a</h2>\n<p><a href=\"https://github.com/sumatrapdfreader/sumatrapdf/issues/4736\" rel=\"nofollow\">https://github.com/sumatrapdfreader/sumatrapdf/issues/4736</a></p>\n<p><a href=\"https://stackoverflow.com/questions/79319196/how-to-achieve-continuous-printing-of-long-receipts-on-dot-matrix-printer\" rel=\"nofollow\">https://stackoverflow.com/questions/79319196/how-to-achieve-continuous-printing-of-long-receipts-on-dot-matrix-printer</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/inSpring", 
        "name": "inSpring", 
        "avatar": "https://cdn.v2ex.com/avatar/efed/9651/218790_large.png?m=1758511207"
      }, 
      "url": "https://www.v2ex.com/t/1100065", 
      "title": "\u670b\u53cb\u4eec\uff0c\u4f60\u4eec\u516c\u53f8\u7684 Electron \u9879\u76ee\u7528\u4ec0\u4e48\u505a\u6570\u636e\u7edf\u8ba1\uff1f Google Analytics \u53ef\u4ee5\u7528\u5417\uff1f", 
      "id": "https://www.v2ex.com/t/1100065", 
      "date_published": "2024-12-25T01:13:07+00:00", 
      "content_html": "<p>\u7c7b\u4f3c Web \u3001App \u7edf\u8ba1\u3002\u6bd4\u5982\u7edf\u8ba1\u5b89\u88c5\u6570\u3001\u6d3b\u8dc3\u7528\u6237\u6570\u3001\u7528\u6237\u4f7f\u7528\u65f6\u957f\u7b49</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ob", 
        "name": "ob", 
        "avatar": "https://cdn.v2ex.com/avatar/a5a4/fd63/76873_large.png?m=1769241292"
      }, 
      "url": "https://www.v2ex.com/t/1093288", 
      "title": "\u5173\u4e8e electron\uff0c\u95ee\u4e00\u4e2a\u5173\u4e8e\u67e5\u627e\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1093288", 
      "date_published": "2024-11-28T01:56:38+00:00", 
      "content_html": "\u73b0\u5728\u5f88\u591a\u5e94\u7528\u90fd\u5f00\u59cb\u7528 electron \u5b9e\u73b0\uff0c\u4f46\u662f\u5f88\u591a\u5185\u5d4c\u7684\u7f51\u9875\u5185\u5bb9\u597d\u50cf\u90fd\u4e0d\u63d0\u4f9b\u67e5\u627e\u9875\u9762\u6587\u5b57\u7684\u529f\u80fd\uff0c\u8fd9\u4e2a\u95ee\u9898\u5927\u5bb6\u90fd\u662f\u600e\u4e48\u89e3\u51b3\u7684\uff1f<br />\u6bd4\u5982 chatgpt, poe \uff0c\u7b49\u7b49\u5f88\u591a\u5e94\u7528\u3002<br />\u6709\u65f6\u5019\u5185\u5bb9\u95ee\u591a\u4e86\uff0c\u60f3\u627e\u4e2a\u5173\u952e\u5b57\uff0c\u8981\u6eda\u534a\u5929\u3002\u3002"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/liuchengfeng1", 
        "name": "liuchengfeng1", 
        "avatar": "https://cdn.v2ex.com/avatar/445e/d34f/441709_large.png?m=1732634973"
      }, 
      "url": "https://www.v2ex.com/t/1092916", 
      "date_modified": "2024-11-26T15:32:32+00:00", 
      "content_html": "<pre><code class=\"language-js\">function createWindow() {\n  // Create the browser window.\n  const mainWindow = new BrowserWindow({\n    width: 1024,\n    height: 768,\n    minWidth: 1024,\n    minHeight: 768,\n    show: false,\n    title: '\u622a\u56fe\u5c0f\u5de5\u5177',\n    autoHideMenuBar: true,\n    webPreferences: {\n      preload,\n      sandbox: false,\n      contextIsolation: false,\n      nodeIntegration: true\n    }\n  })\n\n  mainWindow.on('ready-to-show', () =&gt; {\n    mainWindow.show()\n  })\n\n  mainWindow.webContents.setWindowOpenHandler((details) =&gt; {\n    shell.openExternal(details.url)\n    return { action: 'deny' }\n  })\n  // \u5185\u5d4c\u4e00\u4e2a web \u7f51\u9875\n  mainWindow.loadURL('http://192.168.1.3:8848/')\n  mainWindow.webContents.on('click', (event, x, y) =&gt; {\n    console.log('\ud83d\ude80 ~ mainWindow.webContents.on ~ x:', x, y)\n  })\n}\n</code></pre>\n<p>\u60f3\u89e6\u53d1 electron \u91cc\u9762\u7684<code>\u7a97\u53e3\u6700\u5c0f\u5316</code>\u4e8b\u4ef6\uff1a</p>\n<p><img alt=\"image.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://s2.loli.net/2024/11/26/At4sFxzyWQ5nHSb.png\"/></p>\n", 
      "date_published": "2024-11-26T15:31:57+00:00", 
      "title": "electron \u5f00\u53d1\uff1a\u5355\u72ec\u7684 VUE \u5de5\u7a0b\u548c\u5355\u72ec\u7684 electron \u5de5\u7a0b\u60f3\u901a\u4fe1\u600e\u4e48\u5904\u7406\uff1f", 
      "id": "https://www.v2ex.com/t/1092916"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/mietl", 
        "name": "mietl", 
        "avatar": "https://cdn.v2ex.com/avatar/cf7d/c01c/714623_large.png?m=1729643343"
      }, 
      "url": "https://www.v2ex.com/t/1082111", 
      "title": "\u840c\u65b0\u6c42\u6559\uff0c Electron \u5728\u8bf7\u6c42\u8de8\u57df\u7684\u63a5\u53e3\u65f6\uff0c\u600e\u4e48\u83b7\u53d6 cookie?", 
      "id": "https://www.v2ex.com/t/1082111", 
      "date_published": "2024-10-21T03:07:37+00:00", 
      "content_html": "\u63a5\u53e3\u5730\u5740 <a target=\"_blank\" href=\"http://bgm.tv/login\" rel=\"nofollow noopener\">http://bgm.tv/login</a><br /><br />\u4f7f\u7528 axios \u8bf7\u6c42 withCredentials \u6709\u8bbe\u7f6e true<br /><br /><br />1. \u5c1d\u8bd5\u5728 cookie \u4e2d\u6dfb\u52a0 Secure; SameSite=None \u4f46\u662f Secure \u53ea\u5728 https \u534f\u8bae\u4e0a\u751f\u6548<br /><br /><br />2. \u5173\u95ed webPreferences webSecurity \u5b89\u5168\u6027\u4e5f\u4e0d\u884c<br /><br /><br /> \u8bf7\u95ee\u8fd8\u6709\u5176\u4ed6\u529e\u6cd5\u5417\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lxfcode", 
        "name": "lxfcode", 
        "avatar": "https://cdn.v2ex.com/gravatar/67689b67221d39c3dedb870c8efbcb44?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1077069", 
      "title": "\u6c42\u6559\uff01 electron \u5f00\u53d1\u7684\u5de5\u5177\u7c7b\u5ba2\u6237\u7aef\u5e94\u7528\u5982\u4f55\u8bbe\u8ba1\u6fc0\u6d3b\u673a\u5236\uff1f", 
      "id": "https://www.v2ex.com/t/1077069", 
      "date_published": "2024-09-30T04:19:02+00:00", 
      "content_html": "<p>\u6709\u4e00\u4e2a electron \u5f00\u53d1\u7684\u5de5\u5177\u7c7b\u5e94\u7528\uff0c\u6570\u636e\u548c\u8ba1\u7b97\u90fd\u5728\u672c\u5730\uff0c\u60f3\u5b9e\u73b0\u6fc0\u6d3b\u7801\u673a\u5236\uff0c\u4ed8\u8d39\u5f97\u5230\u4e00\u4e2a key \u7528\u4e8e\u6fc0\u6d3b\uff0c\u6709\u65f6\u95f4\u6bb5\u9650\u5236\u3002\n\u76ee\u524d\u53ef\u884c\u7684\u65b9\u6848\uff1a1. \u670d\u52a1\u7aef\u767b\u5f55\u6ce8\u518c\u673a\u5236\uff0c\u4f46\u6b64\u65b9\u6848\u6700\u5bb9\u6613\u88ab\u7834\u89e3\uff0c\u76f4\u63a5\u672c\u5730\u8d77\u6fc0\u6d3b\u670d\u52a1\u5c31\u884c\u3002\n2. \u672c\u5730\u6536\u96c6\u7528\u6237\u7279\u5f81\u4f7f\u7528 AES \u52a0\u5bc6\u540e\u505a\u6fc0\u6d3b\u7801\u3002\u6b64\u65b9\u6848\u5728\u4e8e\u5982\u4f55\u9690\u85cf\u52a0\u5bc6\u4e32\uff0cJS \u662f\u660e\u6587\u7684\u3002</p>\n<p>\u6211\u77e5\u9053\u65e0\u6cd5\u505a\u5230\u5b8c\u7f8e\uff0c\u6c42\u6559\u4e00\u4e2a\u76f8\u5bf9\u53ef\u884c\u7684\u65b9\u6848\u3002\u6216\u8005\u884c\u4e1a\u5185\u5728\u7528\u7684\u7ecf\u8fc7\u9a8c\u8bc1\u7684\u65b9\u6848\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/seanwhy", 
        "name": "seanwhy", 
        "avatar": "https://cdn.v2ex.com/gravatar/6588fe5d3ad9dc8e28a8b47703bf76f6?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1067773", 
      "date_modified": "2024-08-26T11:49:24+00:00", 
      "content_html": "\u5404\u4f4d\u5927\u4f6c\uff0c\u6211\u4e4b\u524d\u628a\u4e09\u7ef4\u56fe\u5f62\u7a0b\u5e8f\u7f16\u8bd1\u6210 wasm \uff0c\u80fd\u6b63\u5e38\u8fd0\u884c\u5728\u6d4f\u89c8\u5668\u4e0a\u3002\u4f46\u73b0\u5728\u5c06\u5b83\u653e\u5728 electron \u4e0a\u8c03\u7528\uff0c\u53d1\u73b0\u62a5\u9519\uff1aUncaught Error: The V8 platform used by this instance of Node does not support creating Workers \u3002<br />\u8fd9\u4e2a\u62a5\u9519\u8868\u660e node \u76ee\u524d\u73af\u5883\u4e0d\u652f\u6301 workers \u3002\u6211 C++\u5199\u7684\u7a0b\u5e8f\uff0c\u91cc\u9762\u786e\u5b9e\u7528\u5230\u4e86\u5927\u91cf\u7ebf\u7a0b\uff0c\u4e5f\u5c31\u662f\u4f7f\u7528\u4e86 pthread \uff0c\u6d4f\u89c8\u5668\u7aef\u5bf9\u5e94\u7684\u5176\u5b9e\u5c31\u662f webworkers \u3002<br />electron \u91cc\u9762\u7684\u914d\u7f6e\uff0c\u6bd4\u5982\uff1anodeIntegration: true,contextIsolation: false,\u4e5f\u90fd\u8bbe\u7f6e\u4e86\uff0c\u5747\u65e0\u4ec0\u4e48\u7528\u3002<br />\u73b0\u5728\u6bd4\u8f83\u8ff7\uff0c\u5230\u5e95\u8981\u4fee\u6539\u54ea\u90e8\u5206\u5185\u5bb9\uff0c\u662f\u6211\u7684 wasm \u7a0b\u5e8f\u7684\u7f16\u8bd1\u6307\u4ee4\uff1f\u8fd8\u662f\u6211\u7684 wasm \u5177\u4f53\u5b9e\u73b0\uff1f\u8fd8\u662f electron \u5185\u90e8\u7684\u914d\u7f6e\uff1f\u6216\u662f electron \u5185\u90e8\u7684\u8c03\u7528\u5b9e\u73b0\uff1f", 
      "date_published": "2024-08-26T02:51:01+00:00", 
      "title": "[\u6c42\u52a9] Electron \u4e2d\u8fd0\u884c Webassembly \u7591\u95ee", 
      "id": "https://www.v2ex.com/t/1067773"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/join", 
        "name": "join", 
        "avatar": "https://cdn.v2ex.com/avatar/a372/457b/16318_large.png?m=1723696699"
      }, 
      "url": "https://www.v2ex.com/t/1066068", 
      "date_modified": "2024-08-19T03:41:00+00:00", 
      "content_html": "<p>\u524d\u6587\u63d0\u8981\uff1a\n<a href=\"https://www.v2ex.com/t/1065201#reply0\" rel=\"nofollow\">https://www.v2ex.com/t/1065201#reply0</a></p>\n<p>\u4e0a\u4e00\u4e2a\u6c42\u52a9\u8d34\u7684\u95ee\u9898\u6211\u641e\u5b9a\u4e86\uff0c\u539f\u56e0\u5c31\u662f .node \u7684 native module \u9700\u8981\u5355\u72ec\u505a\u7b7e\u540d\uff0c\u5426\u5219\u4f1a\u62a5\u9519\u3002</p>\n<p>\u73b0\u5728\u6211\u628a\u5e94\u7528\u4e0a\u67b6\u5230\u4e86 testflight \uff0c\u5e94\u7528\u4e0b\u8f7d\u5b89\u88c5\u540e\u4f1a\u767d\u5c4f\u3002\u6211\u624b\u52a8\u8c03\u8bd5\u540e\u6709\u4ee5\u4e0b\u786e\u8ba4\u4fe1\u606f\uff1a</p>\n<ol>\n<li>\u53ef\u4ee5\u6b63\u5e38\u7684\u7528 better-sqlite3 \u8fd9\u4e2a native module \u8bfb\u53d6\u672c\u5730\u7684 sqlite \u6570\u636e\u5e93\u3002</li>\n<li>\u524d\u7aef\u7684 index.html \u6587\u4ef6\u8def\u5f84\u6b63\u786e\uff0c\u53ef\u4ee5\u8bfb\u53d6\u3002 </li>\n<li>renderer \u8fdb\u7a0b\u663e\u793a crash \u4e86\uff0c\u548c\u6b63\u5e38\u542f\u52a8\u7684 electron \u7a0b\u5e8f\u53d1\u73b0 renderer \u8fdb\u7a0b\u786e\u5b9e\u6ca1\u6709\u542f\u52a8\u3002</li>\n<li>\u524d\u7aef\u4e5f\u6253\u4e0d\u5f00 dev tools \u3002</li>\n</ol>\n<p>\u66f4\u8be6\u7ec6\u7684\u4fe1\u606f\u53ef\u4ee5\u770b\u6211\u63d0\u4ea4\u7684 issue\uff1a\n<a href=\"https://github.com/electron/electron/issues/43349\" rel=\"nofollow\">https://github.com/electron/electron/issues/43349</a></p>\n", 
      "date_published": "2024-08-19T03:40:40+00:00", 
      "title": "\u5bfb\u6c42\u6709\u507f\u5e2e\u52a9\uff0c\u5c06 Electron \u5e94\u7528\u4e0a\u67b6\u81f3 Mac App Store\u3002", 
      "id": "https://www.v2ex.com/t/1066068"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huage", 
        "name": "huage", 
        "avatar": "https://cdn.v2ex.com/avatar/162a/2584/69678_large.png?m=1700057630"
      }, 
      "url": "https://www.v2ex.com/t/1065950", 
      "title": "Electron \u5f00\u53d1\u7684 Windows \u684c\u9762\u5e94\u7528\u6253\u5f00\u65f6\u4e3a\u4ec0\u4e48\u6709\u4e00\u4e2a installing \u7684\u7a97\u53e3\uff1f", 
      "id": "https://www.v2ex.com/t/1065950", 
      "date_published": "2024-08-18T15:26:29+00:00", 
      "content_html": "\u6587\u4ef6\u53ea\u6709\u4e00\u4e2a\u5355\u4f53\u7684 exe \u6587\u4ef6\uff0c\u4f46\u662f\u6253\u5f00\u65f6\u540c\u65f6\u51fa\u73b0\u7a0b\u5e8f\u7684\u7a97\u53e3\u548c\u4e00\u4e2a installing \u7a97\u53e3\uff0cinstallIng \u8fd0\u884c\u4e00\u4f1a\u4f1a\u9000\u51fa\uff0c\u91cd\u65b0\u6253\u5f00\u7a0b\u5e8f\u7684\u7a97\u53e3\u3002<br /><br />\u8fd9\u662f\u4e3a\u4ec0\u4e48\u5462\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/join", 
        "name": "join", 
        "avatar": "https://cdn.v2ex.com/avatar/a372/457b/16318_large.png?m=1723696699"
      }, 
      "url": "https://www.v2ex.com/t/1065201", 
      "date_modified": "2024-08-15T04:49:09+00:00", 
      "content_html": "<p>\u6211\u8fd9\u51e0\u5929\u4e00\u76f4\u5728\u548c\u7b7e\u540d\u76f8\u5173\u7684\u95ee\u9898\u640f\u6597\uff0c\u80fd\u505a\u7684\u4e8b\u60c5\u5df2\u7ecf\u5168\u90fd\u505a\u4e86\u3002\u73b0\u5728\u5e94\u7528\u4e00\u76f4\u5361\u5728 testflight \u5b89\u88c5\u540e\u62a5\u9519\u3002\n\u62a5\u9519\u7684\u539f\u56e0\u662f\u6211\u4eec\u7528\u4e86 better-sqlite3 \u8fd9\u4e2a\u5e93\uff0c\u4ee5\u4e0b\u662f\u62a5\u9519\u4fe1\u606f\u3002    </p>\n<pre><code>A JavaScript error occurred in the main process  \nUncaught Exception:  \nError: dlopen(/Users/sergey/Library/Containers/com.slippod.dev1/Data/tmp/.DN5KWP78X9.com.slippod.dev1.3r1lqH, 0x0001): tried: '/Users/sergey/Library/Containers/com.slippod.dev1/Data/tmp/.DN5KWP78X9.com.slippod.dev1.3r1lqH' (code signature invalid in &lt;B7BF9AE3-92D4-3E60-9D1F-E80E213B4689&gt; '/Users/sergey/Library/Containers/com.slippod.dev1/Data/tmp/.DN5KWP78X9.com.slippod.dev1.3r1lqH' (errno=1)  \nslice Offset=0x00204000, codeBlob Offset=0x001D3B50, codeBlobSize=0x0000AD80),  \n'/System/Volumes/Preboot/Cryptexes/OS/Users/sergey/Library/Containers/com.slippod.dev1/Data/tmp/.DN5KWP78X9.com.slippod.dev1.3r1lqH' (no such file), '/Users/sergey/Library/Containers/com.slippod.dev1/Data/tmp/.DN5KWP78X9.com.slippod.dev1.3r1lqH' (code signature invalid in &lt;B7BF9AE3-92D4-3E60-9D1F-E80E213B4689&gt; '/Users/sergey/Library/Containers/com.slippod.dev1/Data/tmp/.DN5KWP78X9.com.slippod.dev1.3r1lqH' (errno=1)  \nslice Offset=0x00204000, code Blob Offset=0x001D3B50, codeBlobSize=0x0000AD80)  \nat process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1869)  \nat Module._extensions..node (node:internal/modules/cjs/loader: 1326:18)  \nat Object.func [as .node] (node: electron/js2c/asar_bundle:2:2096)  \nat Module.load (node:internal/modules/cjs/loader: 1096:32)  \nat Module._load (node:internal/modules/cjs/loader: 937:12)  \nat f._load (node: electron/js2c/asar_bundle:2:13377)  \nat Module.require (node:internal/modules/cjs/loader: 1120:19)  \nat require (node:internal/modules/cjs/helpers:103:18)  \nat bindings (/Applications/slippod-1.localized/slippod.app/Contents/Resources/app.asar/node_modules/bindings/bindings.js:112:48)  \nat new Database (/Applications/slippod-1.localized/slippod.app/Contents/Resources/app.asar/node_modules/better-sqlite3/lib/database.js:48:64)  \n</code></pre>\n<p>\u6211\u5728\u7f51\u4e0a\u770b\u5230\u6709\u4eba\u9047\u5230\u4e86\u7c7b\u4f3c\u7684\u95ee\u9898\uff0c\u4ed6\u8bf4\u628a native module \u7684 .node \u6587\u4ef6\u5355\u72ec\u7b7e\u540d\u5c31\u597d\u4e86\u3002</p>\n<p><a href=\"https://github.com/WiseLibs/better-sqlite3/issues/1110\" rel=\"nofollow\">https://github.com/WiseLibs/better-sqlite3/issues/1110</a></p>\n<p>\u6211\u81ea\u5df1\u5728\u6784\u5efa\u811a\u672c\u91cc\u9762\u751a\u81f3\u5355\u72ec\u7684\u628a asar \u89e3\u5f00\uff0c\u7136\u540e\u5355\u72ec\u7b7e\u540d\uff0c\u518d asar pack \u6253\u5305\u56de\u53bb\u90fd\u6ca1\u7528\u3002\u6211\u5728 testflight \u5e94\u7528\u7684\u5b89\u88c5\u673a\u5668\u91cc\u9762\u68c0\u67e5\u4e86\u7b7e\u540d\uff0c\u53d1\u73b0\u7b7e\u540d\u662f\u5bf9\u7684\u3002\u4ee5\u4e0b\u662f\u7b7e\u540d\u7528\u7684\u547d\u4ee4\uff1a</p>\n<pre><code>xcrun codesign --entitlements ./build/entitlements.mas.plist --sign $identity --timestamp --options runtime --force tmp_app/node_modules/better-sqlite3/build/Release/better_sqlite3.node\n</code></pre>\n<p>\u4ee5\u4e0b\u662f\u76ee\u6807\u5b89\u88c5\u673a\u5668\u83b7\u5f97\u7684\u7b7e\u540d\u4fe1\u606f\uff1a</p>\n<pre><code>codesign -dv --verbose=4 /tmp/1/node_modules/better-sqlite3/build/Release/better_sqlite3.node \nExecutable=/private/tmp/1/node_modules/better-sqlite3/build/Release/better_sqlite3.node\nIdentifier=better_sqlite3\nFormat=Mach-O universal (x86_64 arm64)\nCodeDirectory v=20500 size=15258 flags=0x10000(runtime) hashes=468+5 location=embedded\nVersionPlatform=1\nVersionMin=720896\nVersionSDK=852224\nHash type=sha256 size=32\nCandidateCDHash sha1=3b6b239e386494b89e02e410599007bc5fadbe86\nCandidateCDHashFull sha1=3b6b239e386494b89e02e410599007bc5fadbe86\nCandidateCDHash sha256=ede31015cf4d6a33deec42f8e2f96d68ad761b80\nCandidateCDHashFull sha256=ede31015cf4d6a33deec42f8e2f96d68ad761b8096973c8dc0e7cf238ae1b542\nHash choices=sha1,sha256\nCMSDigest=cc4210ec569d3604c006be3785bf02944ba0e250ce30933be60ab71b09ed851d\nCMSDigestType=2\nExecutable Segment base=0\nExecutable Segment limit=1753088\nExecutable Segment flags=0x0\nPage size=4096\nCDHash=ede31015cf4d6a33deec42f8e2f96d68ad761b80\nSignature size=9234\nAuthority=Apple Distribution: Company TECHNOLOGY CO., LTD (*****)\nAuthority=Apple Worldwide Developer Relations Certification Authority\nAuthority=Apple Root CA\nTimestamp=Aug 15, 2024 at 11:06:17\nInfo.plist=not bound\nTeamIdentifier=DN5KWP78X9\nRuntime Version=13.1.0\nSealed Resources=none\nInternal requirements count=1 size=208\n\n</code></pre>\n<p>\u51e0\u4e4e\u80fd\u7528\u7684\u529e\u6cd5\u90fd\u7528\u8fc7\u4e86\u3002 \u5e94\u7528\u662f\u7528\u7684 electrion-builder \u6253\u5305\u7684\uff0c\u672c\u6765\u7528\u5b83\u81ea\u5e26\u7684\u7b7e\u540d\u5de5\u5177\uff0c\u4f46\u4e00\u76f4\u6709\u95ee\u9898\u3002\u540e\u6765\u6362\u4e86 osx-sign \u4e5f\u540c\u6837\u6709\u95ee\u9898\u3002\n\u4ee5\u4e0b\u662f\u6211\u7528\u7684\u5305\u4fe1\u606f\uff1a</p>\n<pre><code>        \"better-sqlite3\": \"^8.6.0\",\n        \"@electron/osx-sign\": \"^1.3.1\",\n        \"electron\": \"^24.2.0\",\n        \"electron-builder\": \"25.0.3\",\n</code></pre>\n<p>\u6211\u770b\u8fd9\u91cc\u6709 electron \u793e\u533a\u7684\u5f00\u53d1\u4eba\u5458\uff0c @<a href=\"/member/BlackHole1\">BlackHole1</a> \u80fd\u5426\u62bd\u7a7a\u5e2e\u5fd9\u770b\u4e0b\uff1f</p>\n", 
      "date_published": "2024-08-15T04:46:17+00:00", 
      "title": "electron mac store \u5e94\u7528\u7b7e\u540d\u4e0a\u67b6\u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/1065201"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/huage", 
        "name": "huage", 
        "avatar": "https://cdn.v2ex.com/avatar/162a/2584/69678_large.png?m=1700057630"
      }, 
      "url": "https://www.v2ex.com/t/1065070", 
      "title": "Win10 \u4e0b\u901a\u8fc7 npm \u5b89\u88c5 electron \u51fa\u73b0\u62a5\u9519", 
      "id": "https://www.v2ex.com/t/1065070", 
      "date_published": "2024-08-14T16:45:32+00:00", 
      "content_html": "\u62a5\u9519\u5982\u4e0b\uff1a<br /><br />C:\\Users\\vmuser\\my-electron-app&gt;npm install --save-dev electron<br />npm error code 1<br />npm error path C:\\Users\\vmuser\\my-electron-app\\node_modules\\electron<br />npm error command failed<br />npm error command C:\\Windows\\system32\\cmd.exe /d /s /c node install.js<br />npm error RequestError: connect ECONNREFUSED 20.205.243.166:443<br />npm error     at ClientRequest.&lt;anonymous&gt; (C:\\Users\\vmuser\\my-electron-app\\node_modules\\got\\dist\\source\\core\\index.js:970:111)<br />npm error     at Object.onceWrapper (node:events:634:26)<br />npm error     at ClientRequest.emit (node:events:531:35)<br />npm error     at origin.emit (C:\\Users\\vmuser\\my-electron-app\\node_modules\\@szmarczak\\http-timer\\dist\\source\\index.js:43:20)<br />npm error     at TLSSocket.socketErrorListener (node:_http_client:500:9)<br />npm error     at TLSSocket.emit (node:events:519:28)<br />npm error     at emitErrorNT (node:internal/streams/destroy:169:8)<br />npm error     at emitErrorCloseNT (node:internal/streams/destroy:128:3)<br />npm error     at process.processTicksAndRejections (node:internal/process/task_queues:82:21)<br />npm error     at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1607:16)<br /><br />\u4e4b\u524d\u4ee5\u4e3a\u662f\u6743\u9650\u95ee\u9898\uff0c\u4f46\u662f\u7528\u4e86\u7ba1\u7406\u5458\u6267\u884c\u8fd8\u662f\u8fd9\u6837\uff0c\u8bf7\u95ee\u5982\u4f55\u89e3\u51b3\uff1f"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Atma", 
        "name": "Atma", 
        "avatar": "https://cdn.v2ex.com/gravatar/b1c15e72c553eb28c13984ff07fdfa27?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1064739", 
      "title": "mac \u5982\u4f55\u76d1\u542c\u8f6f\u4ef6\u53d8\u5316", 
      "id": "https://www.v2ex.com/t/1064739", 
      "date_published": "2024-08-13T14:10:50+00:00", 
      "content_html": "<p>\u4e3a\u4e86\u5b9e\u65f6\u626b\u63cf\u672c\u673a\u8f6f\u4ef6\u7684\u53d8\u5316(\u5220\u9664 \u66f4\u65b0 \u5b89\u88c5)\uff0c\u4f7f\u7528\u4e86 chokidar \u53bb\u76d1\u542c application \u6587\u4ef6\u5939\u7684\u53d8\u5316\uff0c\u5bf9\u4e8e\u5df2\u7ecf\u5b89\u88c5\u7684\u53ef\u4ee5\u76f4\u63a5\u76d1\u542c plist \u5373\u53ef\uff0c\u4f46\u662f\u5bf9\u4e8e\u65b0\u589e\u6216\u8005\u66f4\u65b0 plist \u8def\u5f84\u53d8\u5316\uff0c\u5c31\u9700\u8981\u5168\u90e8\u7eb3\u5165\u76d1\u542c\uff0c\u867d\u7136\u5df2\u7ecf\u9650\u5236 depth \u4e3a 3 \uff0c\u4f46\u662f fsevents cpu \u5360\u7528\u8fd8\u662f\u6bd4\u8f83\u9ad8\uff0c\u5927\u5bb6\u8fd8\u6709\u5176\u4ed6\u4e00\u4e9b\u5efa\u8bae\u6216\u8005\u601d\u8def\u53ef\u4ee5\u53c2\u8003\u4e0b\u5417\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/skape", 
        "name": "skape", 
        "avatar": "https://cdn.v2ex.com/gravatar/8d64980df2027110fd4c307e4da8a967?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1056754", 
      "title": "electron \u5185\u5b58\u4f18\u5316", 
      "id": "https://www.v2ex.com/t/1056754", 
      "date_published": "2024-07-12T02:09:31+00:00", 
      "content_html": "<p>\u6211\u770b\u4e86\u672c\u673a\u7684 clash for windows \u4f18\u5316\u7684\u633a\u597d\u7684\uff0c\u4e0d\u77e5\u9053\u600e\u4e48\u4f18\u5316\u7684\uff0c\n\u7a33\u5b9a\u8fd0\u884c\u5185\u5b58\u5360\u7528\u4e5f\u5c31 150M \u5de6\u53f3\u3002</p>\n<p>\u56e0\u4e3a\u6700\u8fd1\u5728\u505a\u6280\u672f\u8bc4\u4f30\uff0c\u4e00\u4e2a Arm 64 \u7684\u5f00\u53d1\u677f\uff0c\u6211\u80fd\u4f7f\u7528\u7684\u5185\u5b58\u4e5f\u5c31 1.5G \uff0c\u7528 Electron \u5feb\u901f\u5f00\u53d1\n\u611f\u89c9\u6709\u70b9\u5192\u98ce\u9669\u3002\u6700\u8fd1\u5728\u770b Qt,\u5f00\u53d1\u901f\u5ea6\u592a\u6162\uff0c\u754c\u9762\u4e0d\u592a\u597d\u641e\u3002</p>\n<p>\u770b\u4e86\u5f00\u6e90\u7684 electron-egg \u4f18\u5316\u7684\u5185\u5b58\u6709\u4e09\u56db\u767e M,\u542f\u52a8\u65f6\u66f4\u591a\u3002</p>\n<p>\u6709\u6ca1\u6709\u597d\u7684\u5f00\u6e90\u7684 electron \u8c03\u4f18\u597d\u7684\u6846\u67b6\uff0c\u80fd\u9002\u914d\u4e0a\u4f4d\u673a \u5185\u5b58\u4e0d\u5927\u7684 arm \u5f00\u53d1\u677f\u4f7f\u7528\uff1f\u3002\n\u8c01\u77e5\u9053 clash \u6709\u6ca1\u6709\u5f00\u6e90\u7684\u4ee3\u7801\uff0c\u5b66\u4e60\u4e0b\u4ed6\u7684 electron \u3002</p>\n<p>\u5f00\u53d1\u8bbe\u5907\uff08 aarch64 ubuntu \u53ef\u7528 1.5G \u5185\u5b58\uff0c\u9700\u8981\u89e6\u6478\u5c4f\u5e55\u64cd\u4f5c\uff0c\u96c7\u4e3b\u5e0c\u671b\u7a33\u5b9a\uff0c\u6d41\u7545\uff0c\u754c\u9762\u7f8e\u89c2\uff09</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/axina", 
        "name": "axina", 
        "avatar": "https://cdn.v2ex.com/gravatar/8217fa1b80b056b13513ebcd60e10238?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1053772", 
      "date_modified": "2024-07-01T03:47:59+00:00", 
      "content_html": "<p>\u8bf7\u6559\u4e00\u4e0b\u5404\u4f4d\u5927\u4f6c\u4e00\u4e2a electron \u95ee\u9898\uff1a\n\u5728 mac \u4e0a\u6253\u5305 electron(\u4f7f\u7528 electron-vite + react + python)\uff0c\u5176\u4e2d\u5c06\u540e\u7aef python api \u670d\u52a1\u6253\u5305\u4e3a main.dist \u6587\u4ef6\uff08\u91cc\u9762\u5305\u542b main.bin \uff09</p>\n<p>\u5f00\u53d1\u73af\u5883\uff1a\n\u4e00\u5207\u90fd\u6b63\u5e38\uff0cmain.bin \u6587\u4ef6\u6b63\u5e38\u542f\u52a8\uff1b</p>\n<p>\u6253\u5305\u5e76\u5b89\u88c5\u5230 mac \u540e\uff1a</p>\n<ul>\n<li>\u6ca1\u6709\u53cd\u5e94</li>\n<li>\u4f46\u662f\u7528\u7ec8\u7aef\u5728 app \u8def\u5f84\u4e0b\u7684 resources \u91cc\u9762\u6267\u884c\u8be5 bin \u6587\u4ef6\u53c8\u53ef\u4ee5\u6b63\u5e38\u542f\u52a8\u3002</li>\n</ul>\n<p>\u4e0d\u77e5\u9053\u662f\u4ec0\u4e48\u95ee\u9898\uff0c\u95ee AI \u6539\u4e86\u597d\u591a\u904d\u8fd8\u662f\u8fd9\u6837\uff0c\u8bf7\u6559\u4e0b\u5927\u5bb6\u5e2e\u5fd9\u770b\u4e0b\uff0c\u8c22\u8c22\u4e86\u3002</p>\n<p>\u4e0b\u9762\u662f main \u4e0b\u7684\u8be5\u90e8\u5206\u4ee3\u7801\uff1a</p>\n<pre><code>  let pythonBinPath: string;\n  if (app.isPackaged) {\n    // \u6253\u5305\u540e\u7684\u8def\u5f84\n    pythonBinPath = join(process.resourcesPath,'main.dist', 'main.bin');\n  } else {\n    // \u5f00\u53d1\u6a21\u5f0f\u4e0b\u7684\u8def\u5f84\n    pythonBinPath = join(app.getAppPath(), 'resources/main.dist', 'main.bin');\n  }\n\n  console.log('Python binary path:', pythonBinPath);\n\n  // \u5c1d\u8bd5\u8bbe\u7f6e Python \u53ef\u6267\u884c\u6587\u4ef6\u7684\u6743\u9650\n  try {\n    chmodSync(pythonBinPath, '755');\n  } catch (error) {\n    console.error(`\u8bbe\u7f6e Python \u53ef\u6267\u884c\u6587\u4ef6\u6743\u9650\u5931\u8d25: ${error}`);\n    dialog.showErrorBox('\u6743\u9650\u9519\u8bef', `\u8bbe\u7f6e Python \u53ef\u6267\u884c\u6587\u4ef6\u6743\u9650\u5931\u8d25: ${error}`);\n    return;\n  }\n\n  // \u542f\u52a8 Python \u8fdb\u7a0b\n  pythonProcess = spawn(pythonBinPath);\n</code></pre>\n", 
      "date_published": "2024-06-30T14:29:29+00:00", 
      "title": "\u8bf7\u6559\u4e00\u4e0b\uff0c electron \u6253\u5305\u7684\u5b89\u88c5\u5305\uff0c\u5305\u542b\u7684 bin \u6587\u4ef6\u65e0\u6cd5\u6267\u884c\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/1053772"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/18bili", 
        "name": "18bili", 
        "avatar": "https://cdn.v2ex.com/gravatar/3f0d8b15bfb0cb38e3e9dca8ddde0859?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1052317", 
      "title": "\u6709 Flutter \u5c31\u884c\u4e86\u4e3a\u4ec0\u4e48\u8fd8\u9700\u8981 Electron\uff0c\u8c01\u6765\u7ea0\u6b63\u4e00\u4e0b\u6211\u7684\u60f3\u6cd5", 
      "id": "https://www.v2ex.com/t/1052317", 
      "date_published": "2024-06-25T01:48:02+00:00", 
      "content_html": "<p>\u6211\u4e2a\u4eba\u5bf9 Electron \u7684\u4e86\u89e3\u4e0d\u591a\uff0c\u5e94\u8be5\u4e3b\u8981\u5c31\u662f\u7528\u6765\u5f00\u53d1\u684c\u9762\u5e94\u7528\u7684\u3002\u4f46\u662f Flutter \u5c31\u53ef\u4ee5\u5f00\u53d1\u684c\u9762\u5e94\u7528\uff0c\u8fd8\u53ef\u4ee5\u4e00\u5957\u4ee3\u7801\u540c\u65f6\u9002\u914d\u591a\u4e2a\u5e73\u53f0\uff0c\u5305\u62ec\u79fb\u52a8\u7aef\uff0c\u4e3a\u4ec0\u4e48\u8fd8\u9700\u8981 Electron \uff0c\u8c01\u6765\u7ea0\u6b63\u4e00\u4e0b\u6211\u7684\u60f3\u6cd5\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/bug51", 
        "name": "bug51", 
        "avatar": "https://cdn.v2ex.com/avatar/f1c3/bb38/653901_large.png?m=1715484145"
      }, 
      "url": "https://www.v2ex.com/t/1047461", 
      "title": "\u8d81\u7740\u8fd9\u628a AI \u7092\u4f5c\uff0c Eletron \u6709\u6ca1\u6709\u66f4\u706b\u4e86\uff1f", 
      "id": "https://www.v2ex.com/t/1047461", 
      "date_published": "2024-06-06T10:26:57+00:00", 
      "content_html": ""
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/lingeo", 
        "name": "lingeo", 
        "avatar": "https://cdn.v2ex.com/avatar/8612/5629/606065_large.png?m=1680230803"
      }, 
      "url": "https://www.v2ex.com/t/1044705", 
      "date_modified": "2024-05-28T07:11:49+00:00", 
      "content_html": "<p>electron \u6253\u5305\u4e86\u4e00\u4e2a\u5e94\u7528\uff0c\u542f\u52a8\u540e\u4e3b\u7a97\u53e3\u5df2\u7ecf\u6253\u5f00\u4e86\uff0c\u4f46\u662f\u8fd8\u4f1a\u6709\u4e2a update \u7a97\u53e3\uff0c\u8fc7\u4e00\u4f1a\u53c8\u91cd\u65b0\u6253\u5f00\u4e86\u4e3b\u7a97\u53e3\u3002\n\u641c\u4e86\u4e0b\u5982\u4f55\u5173\u95ed\u81ea\u52a8\u66f4\u65b0\uff0c\u6211\u7a0b\u5e8f\u4e2d\u4e5f\u6ca1\u6709\u627e\u5230\u4efb\u4f55\u66f4\u65b0\u7684\u4ee3\u7801\uff0c\u4f7f\u7528\u7684\u662f electron-forge \u6253\u5305\u3002<br/>\n<img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://i.imgur.com/d0Iqf4C.png\"/>\n<img alt=\"\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://imgur.com/NDsraLR.png\"/></p>\n", 
      "date_published": "2024-05-28T07:09:28+00:00", 
      "title": "electron \u542f\u52a8\u65f6\u5982\u4f55\u53d6\u6d88 update \u7a97\u53e3", 
      "id": "https://www.v2ex.com/t/1044705"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Minimx", 
        "name": "Minimx", 
        "avatar": "https://cdn.v2ex.com/gravatar/d127c23071807af1588d82285be0a619?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1035535", 
      "title": "Poros-\u57fa\u4e8e Umi \u7684 Electron React \u6846\u67b6", 
      "id": "https://www.v2ex.com/t/1035535", 
      "date_published": "2024-04-25T03:14:47+00:00", 
      "content_html": "<p>\u57fa\u4e8e Umi \u7684 Electron React \u6846\u67b6</p>\n<blockquote>\n<p>\u60a8\u53ef\u4ee5\u5feb\u901f\u6784\u5efa\u4e00\u4e2a Electron \u9879\u76ee\uff0c\u53ef\u4ee5\u5f00\u53d1\u3001\u6253\u5305\u3001\u5347\u7ea7\u7b49\uff0c\u5b83\u5177\u5907 Umi \u7684\u6240\u6709\u529f\u80fd\u3002\u5b83\u8fd8\u96c6\u6210\u4e86\u5e38\u7528\u7684 electron \u5e93\uff0c\u6bd4\u5982\uff1aelectron-log \u3001electron-store... \u672a\u6765\u8fd8\u5c06\u96c6\u6210\u66f4\u591a\u529f\u80fd\u3002</p>\n</blockquote>\n<h2>\u5feb\u901f\u4e0a\u624b</h2>\n<h3>\u521b\u5efa\u9879\u76ee</h3>\n<p>\u5148\u627e\u4e2a\u5730\u65b9\u5efa\u4e2a\u7a7a\u76ee\u5f55\u3002</p>\n<pre><code class=\"language-bash\">$ mkdir myapp &amp;&amp; cd myapp\n</code></pre>\n<pre><code class=\"language-bash\"># pnpm \u63a8\u8350\n$ pnpm create poros\n\n# npm\n$ npx create-poros@latest\n\n# yarn\n$ yarn create poros\n</code></pre>\n<h3>\u542f\u52a8\u9879\u76ee</h3>\n<p>\u6267\u884c <code>pnpm start</code> \u547d\u4ee4</p>\n<pre><code class=\"language-bash\">        \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557\nready - \u2551  Electron app launch success  \u2551\n        \u255a\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255d\nevent - [Webpack] Compiled in 19830 ms (4955 modules)\ninfo  - [MFSU][eager] write cache\ninfo  - [MFSU] buildDepsAgain\ninfo  - [MFSU] skip buildDeps\n</code></pre>\n<h2>\u76ee\u5f55\u7ed3\u6784</h2>\n<pre><code>\u251c\u2500\u2500 config\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 builder.ts                      // electron-builder \u914d\u7f6e\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 config.ts                       // umi \u914d\u7f6e\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 routes.ts                       // umi routes \u914d\u7f6e\n\u251c\u2500\u2500 mock                                \n\u2502\u00a0\u00a0 \u2514\u2500\u2500 demo.ts\n\u251c\u2500\u2500 src\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 constants\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 index.ts\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 locales                         // \u56fd\u9645\u5316\u76ee\u5f55,\u5f00\u542f\u56fd\u9645\u5316\u63d2\u4ef6\u6709\u6548\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 en-US.ts\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 zh-CN.ts\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 main                            // \u4e3b\u8fdb\u7a0b\u76ee\u5f55\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u251c\u2500\u2500 windows                     // \u7a97\u53e3\u76ee\u5f55\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 index.ts\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 preload                         // preload \u76ee\u5f55\n\u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 index.ts\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 renderer                        // \u6e32\u67d3\u8fdb\u7a0b\u76ee\u5f55\uff0c\u540c umi\n\u2502\u00a0\u00a0 \u2502   \u251c\u2500\u2500 assets\n\u2502\u00a0\u00a0 \u2502   \u251c\u2500\u2500 models\n\u2502\u00a0\u00a0 \u2502   \u251c\u2500\u2500 pages\n\u2502\u00a0\u00a0 \u2502   \u251c\u2500\u2500 utils \n\u2502\u00a0\u00a0 \u2502   \u251c\u2500\u2500 ipc.ts                      // \u6e32\u67d3\u8fdb\u7a0b\u4e0e\u4e3b\u8fdb\u7a0b ipc \u901a\u4fe1\u5b9a\u4e49\u6587\u4ef6\uff0c\u5f00\u542f ipc \u63d2\u4ef6\u6709\u6548\n\u2502\u00a0\u00a0 \u2502   \u2514\u2500\u2500 app.ts         \n\u251c\u2500\u2500 package.json\n\u251c\u2500\u2500 pnpm-lock.yaml\n\u251c\u2500\u2500 tsconfig.json\n\u2514\u2500\u2500 typings.d.ts\n</code></pre>\n<h2>\u81ea\u5b9a\u4e49\u7a97\u53e3</h2>\n<p>\u6846\u67b6\u7ea6\u5b9a\u4ee5 <code>src/main/window</code> \u76ee\u5f55\u4f5c\u4e3a\u81ea\u5b9a\u5b9a\u7a97\u53e3\u76ee\u5f55</p>\n<blockquote>\n<p>\u81ea\u5b9a\u4e49\u7a97\u53e3\u9700\u8981\u7ee7\u627f <code>PorosBrowserWindow</code> \u7c7b, <code>PorosBrowserWindow</code> \u4e3a <code>BrowserWindow</code> \u5b50\u7c7b</p>\n</blockquote>\n<pre><code class=\"language-typescript\">// src/main/window/MainWindow\nimport path from 'path';\nimport { PorosBrowserWindow, PorosBrowserWindowOptions } from 'poros';\n\nclass MainWindow extends PorosBrowserWindow {\n  /**\n   * \u662f\u5426\u5355\u4f8b, \u9ed8\u8ba4\uff1atrue\n   */\n  static readonly single = true;\n\n  /**\n   * \u52a0\u8f7d\u9875\u9762\u5730\u5740\n   */\n  protected static readonly URL = '/';\n\n  /**\n   * \u7a97\u53e3\u5c5e\u6027\u914d\u7f6e\n   */\n  protected static readonly OPTIONS: PorosBrowserWindowOptions = {\n    title: 'Poros',\n    height: 628,\n    width: 542,\n    minHeight: 628,\n    minWidth: 542,\n    hideOnClose: true,\n    webPreferences: {\n      preload: path.join(__dirname, 'preload/index.js'),\n    },\n  };\n\n  constructor() {\n    super(MainWindow.URL, MainWindow.OPTIONS);\n  }\n\n  protected registerWindowEvent(): void {}\n}\n\nexport default MainWindow;\n</code></pre>\n<h2>API</h2>\n<blockquote>\n<p>import { something } from 'poros';</p>\n</blockquote>\n<h3>Main Process</h3>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>initialize</td>\n<td>() =&gt; void</td>\n<td>\u521d\u59cb\u5316\u65b9\u6cd5\uff0c\u9700\u8981\u5728 app ready \u4e4b\u524d\u8c03\u7528</td>\n</tr>\n<tr>\n<td>PorosBrowserWindow</td>\n<td><a href=\"#PorosBrowserWindow\" rel=\"nofollow\">PorosBrowserWindow</a></td>\n<td>\u7a97\u53e3\u57fa\u7c7b</td>\n</tr>\n<tr>\n<td>PorosWindowManager</td>\n<td><a href=\"#PorosWindowManager\" rel=\"nofollow\">PorosWindowManager</a></td>\n<td>\u7a97\u53e3\u7ba1\u7406\u7c7b</td>\n</tr>\n<tr>\n<td>port</td>\n<td>number</td>\n<td>dev web \u670d\u52a1\u7aef\u53e3</td>\n</tr>\n<tr>\n<td>logger</td>\n<td><a href=\"#Logger\" rel=\"nofollow\">Logger</a></td>\n<td>\u65e5\u5fd7\u6a21\u5757</td>\n</tr>\n<tr>\n<td>localStore</td>\n<td><a href=\"#LocalStore\" rel=\"nofollow\">LocalStore</a></td>\n<td>\u672c\u5730\u5316\u5b58\u50a8\uff0c\u53ef\u4ee5\u672c\u5730\u6587\u4ef6\u7684\u65b9\u5f0f\u5b58\u50a8\u4e00\u4e9b\u914d\u7f6e\u4fe1\u606f</td>\n</tr>\n<tr>\n<td>localShortcut</td>\n<td><a href=\"#LocalShortcut\" rel=\"nofollow\">LocalShortcut</a></td>\n<td>\u7a97\u53e3\u5316\u5feb\u6377\u952e</td>\n</tr>\n<tr>\n<td>isMacOS</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a macOS \u7cfb\u7edf</td>\n</tr>\n<tr>\n<td>isWindows</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a Windows \u7cfb\u7edf</td>\n</tr>\n<tr>\n<td>isLinux</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a Linux \u7cfb\u7edf</td>\n</tr>\n<tr>\n<td>isX86</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a x86 \u67b6\u6784</td>\n</tr>\n<tr>\n<td>isX64</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a x64 \u67b6\u6784</td>\n</tr>\n<tr>\n<td>isDev</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a\u5f00\u53d1\u73af\u5883</td>\n</tr>\n<tr>\n<td>isProd</td>\n<td>boolean</td>\n<td>\u662f\u5426\u4e3a\u751f\u4ea7\u73af\u5883</td>\n</tr>\n</tbody></table><h3>Renderer Process</h3>\n<blockquote>\n<p>\u900f\u4f20 <code>umi</code> \u7684\u6240\u6709\u5c5e\u6027, \u4e5f\u52a0\u5165\u4e86\u4e00\u4e9b\u5199\u7684\u5c5e\u6027</p>\n</blockquote>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>logger</td>\n<td><a href=\"#Logger\" rel=\"nofollow\">Logger</a></td>\n<td>\u65e5\u5fd7\u6a21\u5757</td>\n</tr>\n<tr>\n<td>localStore</td>\n<td><a href=\"#LocalStore\" rel=\"nofollow\">LocalStore</a></td>\n<td>\u672c\u5730\u5316\u5b58\u50a8\uff0c\u53ef\u4ee5\u672c\u5730\u6587\u4ef6\u7684\u65b9\u5f0f\u5b58\u50a8\u4e00\u4e9b\u914d\u7f6e\u4fe1\u606f</td>\n</tr>\n</tbody></table><h3>PorosBrowserWindow</h3>\n<p>\u7ee7\u627f\u81f3 <code>BrowserWindow</code></p>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>single</td>\n<td>static readonly boolean</td>\n<td>\u662f\u5426\u5355\u4f8b, \u9ed8\u8ba4\uff1atrue</td>\n</tr>\n<tr>\n<td>URL</td>\n<td>static readonly string</td>\n<td>\u52a0\u8f7d\u9875\u9762\u5730\u5740</td>\n</tr>\n<tr>\n<td>OPTIONS</td>\n<td>static readonly PorosBrowserWindowOptions</td>\n<td>\u7a97\u53e3\u914d\u7f6e\u9879</td>\n</tr>\n<tr>\n<td>registerWindowEvent</td>\n<td>() =&gt; void</td>\n<td>\u6ce8\u518c\u7a97\u53e3\u4e8b\u4ef6</td>\n</tr>\n</tbody></table><h3>PorosWindowManager</h3>\n<p>\u7ba1\u7406 <code>PorosBrowserWindow</code> \u7a97\u53e3</p>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>create</td>\n<td>(constructor: Type&lt;PorosBrowserWindow&gt;, ...properties: ConstructorParameters&lt;typeof constructor&gt;) =&gt; PorosBrowserWindow</td>\n<td>\u521b\u5efa\u7a97\u53e3\u5b9e\u4f8b</td>\n</tr>\n<tr>\n<td>destroy</td>\n<td><code>(id: number) =&gt; void</code> | <code>(constructor: Type\\&lt;PorosBrowserWindow\\&gt;) =&gt; void</code></td>\n<td>\u9500\u6bc1\u7a97\u53e3\u5b9e\u4f8b</td>\n</tr>\n<tr>\n<td>destroyAll</td>\n<td>(excludes: Type&lt;PorosBrowserWindow&gt;[] = [])</td>\n<td>\u9500\u6bc1\u6240\u6709\u7a97\u53e3\u5b9e\u4f8b\uff0cexcludes:\u6392\u9664\u9879</td>\n</tr>\n<tr>\n<td>getAll</td>\n<td>() =&gt; PorosBrowserWindow[]</td>\n<td>\u83b7\u53d6\u6240\u6709\u7a97\u53e3</td>\n</tr>\n<tr>\n<td>get</td>\n<td><code>(constructor: PorosBrowserWindow) =&gt; PorosBrowserWindow\\|Record&lt;number, PorosBrowserWindow&gt;\\|undefined</code> | <code>(id: number) =&gt; PorosBrowserWindow\\|undefined</code></td>\n<td>\u83b7\u53d6\u7a97\u53e3</td>\n</tr>\n</tbody></table><h3>Logger</h3>\n<p>\u914d\u7f6e\u9879 <code>config/config.ts</code></p>\n<pre><code class=\"language-typescript\">export default defineConfig({\n   logger : {\n     transports: {\n       file: {\n         level: 'warn',\n         format: '[{y}-{m}-{d} {h}:{i}:{s}.{ms}] [{level}]{scope} {text}',\n         maxSize: 1048576,\n       },\n       console: {\n         level: 'debug',\n       },\n     },\n   }\n});\n</code></pre>\n<p>\u5177\u4f53\u914d\u7f6e\u548c\u7528\u6cd5\u53ef\u53c2\u7167<a href=\"https://github.com/megahertz/electron-log\" rel=\"nofollow\">electron-log</a>\u3002</p>\n<blockquote>\n<p>\u6ce8\u610f\uff1a\u63a7\u5236\u53f0\u7684\u65e5\u5fd7\u8f93\u51fa\u4e3a\u4e86\u4f5c\u51fa\u7c7b\u578b\u533a\u5206\u52a0\u4e86\u7279\u6709\u7684\u6807\u5fd7\uff0c\u6240\u6709 <code>transports.console.format</code> \u7684\u8bbe\u7f6e\u4e0d\u4f1a\u751f\u6548, </p>\n</blockquote>\n<h3>LocalStore</h3>\n<p>\u4fdd\u5b58\u7528\u6237\u8bbe\u7f6e\u3001\u5e94\u7528\u7a0b\u5e8f\u72b6\u6001\u3001\u7f13\u5b58\u7b49</p>\n<p>\u914d\u7f6e\u9879 <code>config/config.ts</code></p>\n<pre><code class=\"language-typescript\">export default defineConfig({\n   localStore: {\n     schema: {\n       unicorn: {\n          type: 'string',\n         default: '\ud83e\udd84',\n       },\n     },\n   },\n});\n</code></pre>\n<p>\u5177\u4f53\u914d\u7f6e\u548c\u7528\u6cd5\u53ef\u53c2\u7167<a href=\"https://github.com/sindresorhus/electron-store\" rel=\"nofollow\">electron-store</a>\u3002</p>\n<h3>LocalShortcut</h3>\n<p>\u5c06\u952e\u76d8\u5feb\u6377\u952e\u672c\u5730\u6dfb\u52a0\u5230 BrowserWindow \u5b9e\u4f8b\uff0c\u800c\u4e0d\u4f7f\u7528\u83dc\u5355</p>\n<p><code>PorosBrowserWindow</code> \u4e2d\u5185\u7f6e\u4e86\u6253\u5f00 DevTools \u5feb\u6377\u952e <code>Cmd+Option+I</code> \u6216 <code>F12</code></p>\n<p>\u5177\u4f53\u7528\u6cd5\u53ef\u53c2\u7167<a href=\"https://github.com/parro-it/electron-localshortcut\" rel=\"nofollow\">electron-localshortcut</a>\u3002</p>\n<h2>\u63d2\u4ef6</h2>\n<blockquote>\n<p>\u60a8\u4e5f\u53ef\u4ee5\u76f4\u63a5\u4f7f\u7528 Umi \u63d2\u4ef6\u3002\u5982\u679c\u60a8\u9047\u5230\u4efb\u4f55\u95ee\u9898\uff0c\u8bf7\u8054\u7cfb\u6211\u3002</p>\n</blockquote>\n<h3>locale</h3>\n<p>\u4e0e umi locale \u63d2\u4ef6\u529f\u80fd\u57fa\u672c\u76f8\u540c\uff0c\u5f00\u542f\u65b9\u6cd5\u4e00\u81f4\uff0c\u4e3b\u8fdb\u7a0b\u4e0e\u6e32\u67d3\u8fdb\u7a0b\u4e2d\u4f7f\u7528\u65b9\u6cd5\u76f8\u540c\u3002</p>\n<pre><code class=\"language-typescript\">import { localeInfo, getIntl, setIntl, getLocale, setLocale, getAllLocales, i18n } from 'poros';\n\ni18n('button.ok');\n</code></pre>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>localeInfo</td>\n<td>{[key: string]: {messages:{[key: string]},locale:string}}</td>\n<td>\u8bed\u8a00\u4fe1\u606f</td>\n</tr>\n<tr>\n<td>getIntl</td>\n<td>(lang?: string, changeIntl?: boolean) =&gt; IntlShape</td>\n<td>\u65e5\u83b7\u53d6\u5f53\u524d\u7684 intl \u5bf9\u8c61\u5fd7\u6a21\u5757</td>\n</tr>\n<tr>\n<td>setIntl</td>\n<td>(lang: string) =&gt; void</td>\n<td>\u5207\u6362\u5168\u5c40\u7684 intl \u7684\u8bbe\u7f6e</td>\n</tr>\n<tr>\n<td>getLocale</td>\n<td>() =&gt; string</td>\n<td>\u83b7\u53d6\u5f53\u524d\u9009\u62e9\u7684\u8bed\u8a00</td>\n</tr>\n<tr>\n<td>setLocale</td>\n<td>(lang: string) =&gt; void</td>\n<td>\u8bbe\u7f6e\u8bed\u8a00</td>\n</tr>\n<tr>\n<td>getAllLocales</td>\n<td>string[]</td>\n<td>\u83b7\u53d6\u591a\u8bed\u8a00\u5217\u8868</td>\n</tr>\n<tr>\n<td>i18n</td>\n<td>(id:string, values?: Record&lt;string, any&gt;) =&gt; string</td>\n<td>formatMessage \u8bed\u6cd5\u7cd6</td>\n</tr>\n</tbody></table><h3>ipc</h3>\n<p>\u7b80\u5316\u4e3b\u8fdb\u7a0b\u4e0e\u6e32\u67d3\u8fdb\u7a0b\u4e4b\u95f4\u7684\u901a\u4fe1</p>\n<h4>\u4e3b\u8fdb\u7a0b API</h4>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>IpcHandle</td>\n<td>-</td>\n<td>ipc \u65b9\u6cd5\u6ce8\u89e3\uff0c<code>PorosBrowserWindow</code>\u5185\u4f7f\u7528</td>\n</tr>\n<tr>\n<td>rendererInvoker</td>\n<td>{[method: string]: (...args:any[], opts?: { broadcast?: boolean, window?: PorosBrowserWindow})}</td>\n<td>\u6e32\u67d3\u8fdb\u7a0b\u65b9\u6cd5\u8c03\u7528\u5668</td>\n</tr>\n</tbody></table><p><code>rendererInvoker</code> \u4e2d <code>broadcast</code> \u4e3a <code>true</code> \u65f6\uff0c\u4f1a\u7ed9\u6240\u6709\u7a97\u53e3\u5e7f\u64ad\u4e8b\u4ef6(\u5e7f\u64ad\u4e8b\u4ef6\u65e0\u8fd4\u56de\u503c)\uff0c\u6240\u6709\u76d1\u542c\u4e86\u4e8b\u4ef6\u7684\u7a97\u53e3\u90fd\u4f1a\u6536\u5230\u6d88\u606f\uff0c\u53cd\u4e4b\u53ea\u6709\u76f8\u5e94\u7684\u7a97\u53e3\u4e0b\u9875\u9762\u4f1a\u6536\u5230\u6d88\u606f\u3002<code>PorosBrowserWindow</code> \u7c7b\u4e2d\u8c03\u7528\uff0cwindow \u9ed8\u8ba4\u503c\u4e3a\u5f53\u524d\u7a97\u53e3\uff0c\u975e<code>PorosBrowserWindow</code> \u7c7b\u4e2d\u5fc5\u9700\u6307\u5b9a window \u503c\u3002</p>\n<h4>\u6e32\u67d3\u8fdb\u7a0b API</h4>\n<table>\n<thead>\n<tr>\n<th>\u53c2\u6570</th>\n<th>\u7c7b\u578b</th>\n<th>\u8bf4\u660e</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>useIpc</td>\n<td>(channel: string ,callback?:(...args:any[])=&gt;any)=&gt;any[]</td>\n<td>ipc \u65b9\u6cd5\u6ce8\u89e3\uff0c<code>PorosBrowserWindow</code>\u5185\u4f7f\u7528</td>\n</tr>\n<tr>\n<td>mainInvoker</td>\n<td>{[windowName: string]: {[method: string]: (...args:any)=&gt;any}, open: ()=&gt;void}</td>\n<td>\u4e3b\u8fdb\u7a0b\u65b9\u6cd5\u8c03\u7528\u5668</td>\n</tr>\n</tbody></table><h4>\u6e32\u67d3\u8fdb\u7a0b\u8c03\u7528\u4e3b\u8fdb\u7a0b</h4>\n<pre><code class=\"language-typescript\">// 1 \u3001\u4f7f\u7528 IpcHandle \u6ce8\u89e3\u8981\u8c03\u7528\u7684\u65b9\u6cd5\nimport { IpcHandle } from 'poros';\nclass MainWindow extends PorosBrowserWindow {\n  // ... \u7701\u7565\u57fa\u672c\u5c5e\u6027\n\n  @IpcHandle\n  foo(name: string) {\n    return 'Hello renderer'; // \u8fd4\u56de\u7ed9\u6e32\u67d3\u8fdb\u7a0b\n  }\n}\n\nexport default MainWindow;\n\n// 2 \u3001\u6e32\u67d3\u8fdb\u7a0b\u4e2d\u8c03\u7528\nimport { mainInvoker } from 'poros';\nconst ret = mainInvoker.MainWindow.foo('demo');\n</code></pre>\n<h4>\u4e3b\u8fdb\u7a0b\u8c03\u7528\u6e32\u67d3\u8fdb\u7a0b</h4>\n<p>1 \u3001\u5b9a\u4e49\u4e8b\u4ef6\u7c7b\u578b(/src/renderer/ipc.ts)</p>\n<pre><code class=\"language-typescript\">export default interface IpcChannelToHandlerMap {\n  'network-monitor': (received: number, transferred: number) =&gt; string;\n}\n</code></pre>\n<p>2 \u3001react \u7ec4\u4ef6\u4e2d\u76d1\u542c</p>\n<pre><code class=\"language-tsx\">import { mainInvoker } from 'poros';\n\nconst Demo = () =&gt; {\n  useIpc('network-monitor', (received, transferred) =&gt; {\n    return ''; // \u8fd4\u56de\u503c\u7ed9\u4e3b\u8fdb\u7a0b\n  });\n  // \u6216\u8005\n  const [received, transferred] = useIpc('network-monitor');\n\n  return (\n    &lt;div&gt;demo&lt;/div&gt;\n  );\n};\nexport default Demo;\n</code></pre>\n<p>3 \u3001\u4e3b\u8fdb\u7a0b\u4e2d\u8c03\u7528</p>\n<pre><code class=\"language-typescript\">// PorosBrowserWindow \u7c7b\u4e2d\u8c03\u7528\nconst ret = this.rendererInvoker.networkMonitor(received: number, transferred: number, opts?: { broadcast?: boolean, window?: PorosBrowserWindow}); \n\n// \u975e PorosBrowserWindow \u7c7b\u4e2d\u8c03\u7528\nimport { rendererInvoker } from 'poros';\nrendererInvoker.networkMonitor(received: number, transferred: number, opts: { broadcast?: boolean, window: PorosBrowserWindow });\n</code></pre>\n<h2>\u9884\u8bbe\u63d2\u4ef6</h2>\n<ul>\n<li>initial-state</li>\n<li>access</li>\n<li>model</li>\n<li>react-query</li>\n<li>antd</li>\n<li>locale</li>\n<li>ipc</li>\n</ul>\n<h2>DEMO \u9884\u89c8\u56fe</h2>\n<img alt=\"demo\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://img2.imgtp.com/2024/04/24/uFTvtDOY.png\"/>\n<h2>\u6765\u4e2a Star\ud83d\ude4f\ud83d\ude4f\ud83d\ude4f</h2>\n<p><a href=\"https://github.com/porosjs/poros\" rel=\"nofollow\">https://github.com/porosjs/poros</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/changdy", 
        "name": "changdy", 
        "avatar": "https://cdn.v2ex.com/avatar/97c2/a0ff/166121_large.png?m=1751710855"
      }, 
      "url": "https://www.v2ex.com/t/1034784", 
      "date_modified": "2024-04-22T23:02:11+00:00", 
      "content_html": "<p>\u60f3\u628a\u81ea\u5df1 5 \u5e74\u524d\u505a\u7684 electron \u5c0f\u5de5\u5177\u8fc1\u79fb\u5230 flutter \u4e0a\u9762,\n\u96f6\u96f6\u6563\u6563\u770b\u4e86\u4e00\u4e24\u5929\u7684 flutter , \u4eca\u5929\u5d29\u6e83\u4e86.\n\u6587\u6863\u4e0d\u5982 electron \u6210\u719f , \u60f3\u7528\u5feb\u6377\u952e\u5b9e\u73b0\u7a97\u53e3\u5524\u9192\u5230\u524d\u53f0.\u770b\u4e86\u4e0b chatgpt \u7684\u56de\u7b54,\u5b9e\u73b0\u8d77\u6765\u975e\u5e38\u9ebb\u70e6.\n\u4e0d\u540c\u7684\u684c\u9762\u7aef\u8981\u5199\u4e0d\u540c\u7684\u539f\u751f\u4ee3\u7801\u4ea4\u4e92 , \u8499\u5708\u4e2d.</p>\n<p>electron \u4e07\u5c81.\u8fd9\u4e1c\u897f\u771f\u7684\u8282\u7701\u4e86\u51e0\u500d\u7684\u7814\u53d1\u6210\u672c.</p>\n<p>ps flutter \u7684 codelabs \u505a\u7684\u662f\u771f\u7684\u597d..\u7a0d\u5fae\u6709\u70b9\u8ba1\u7b97\u673a\u57fa\u7840\u90fd\u80fd\u8ddf\u7740\u4e0a\u624b.;..</p>\n", 
      "date_published": "2024-04-22T16:47:48+00:00", 
      "title": "\u518d\u4e5f\u4e0d\u8bf4 electron \u662f\u4e2a\u90aa\u6076\u7684\u6280\u672f\u4e86", 
      "id": "https://www.v2ex.com/t/1034784"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/archergu", 
        "name": "archergu", 
        "avatar": "https://cdn.v2ex.com/avatar/0647/4d04/673401_large.png?m=1706252221"
      }, 
      "url": "https://www.v2ex.com/t/1030624", 
      "date_modified": "2024-04-08T07:39:36+00:00", 
      "content_html": "<p>\u601d\u8def\uff0c\u5728 electron \u7684\u4e3b\u8fdb\u7a0b\u4e2d\u96c6\u6210\u4e00\u4e2a nest.js \u540e\u7aef\u6846\u67b6\uff0c\u8ba9\u4e3b\u8fdb\u7a0b\u50cf\u5199\u540e\u7aef\u90a3\u6837\uff0c\u501f\u52a9\u4e8e nest.js \u826f\u597d\u7684\u4ee3\u7801\u6a21\u5757\u89c4\u8303\u548c\u6210\u719f\u7684\u751f\u6001\uff0c\u5e2e\u52a9\u4f60\u7684 electron \u53ef\u4ee5\u96c6\u6210\u66f4\u591a\u6709\u610f\u601d\u7684\u529f\u80fd\u3002\u5728\u672a\u6765\u9700\u8981\u8fdb\u884c client \u5230 b/s \u6539\u9020\u65f6\u8fd8\u80fd\u5feb\u901f\u62bd\u79bb\u4e00\u4e2a node \u540e\u7aef\u51fa\u6765\uff0c\u5e2e\u52a9\u4f60\u8282\u7701\u66f4\u591a\u7684\u6478\u9c7c\u65f6\u95f4\u3002</p>\n<p>\u641e\u4e86\u4e00\u4e9b\u5c0f\u6a21\u677f\u4f9b\u5927\u5bb6\u501f\u9274\u53c2\u8003\uff0c\u5982\u679c\u80fd\u5e2e\u52a9\u5230\u4f60\uff0c\u53ef\u4ee5\u7ed9\u4e00\u4e2a star \u6765\u6ee1\u8db3\u4e0b\u6211\u7684\u5c0f\u5c0f\u865a\u8363\u5fc3~</p>\n<p>\u5e38\u89c4\u6a21\u677f\uff1a</p>\n<p>vue+nestjs:\u00a0<a href=\"https://github.com/ArcherGu/fast-vite-nestjs-electron\" rel=\"nofollow\">https://github.com/ArcherGu/fast-vite-nestjs-electron</a></p>\n<p>vue+\u4e2a\u4eba\u4f9d\u8d56\u6ce8\u5165\u5c0f\u6846\u67b6\uff1a\u00a0<a href=\"https://github.com/ArcherGu/fast-vite-electron\" rel=\"nofollow\">https://github.com/ArcherGu/fast-vite-electron</a></p>\n<p>react+nestjs:\u00a0<a href=\"https://github.com/ArcherGu/vite-react-nestjs-electron\" rel=\"nofollow\">https://github.com/ArcherGu/vite-react-nestjs-electron</a></p>\n<p>\u8fd8\u6709\u4e00\u5957\u81ea\u5df1\u641e\u7684 monorepo \u6a21\u677f\uff1a</p>\n<p><a href=\"https://github.com/Doubleshotjs/template-react-nest\" rel=\"nofollow\">https://github.com/Doubleshotjs/template-react-nest</a></p>\n<p><a href=\"https://github.com/Doubleshotjs/template-vue-nest\" rel=\"nofollow\">https://github.com/Doubleshotjs/template-vue-nest</a></p>\n", 
      "date_published": "2024-04-08T07:38:53+00:00", 
      "title": "Electron+Nest.js \u6253\u5de5\u4eba\u7684\u5077\u61d2\u67b6\u6784", 
      "id": "https://www.v2ex.com/t/1030624"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/MuscleOf2016", 
        "name": "MuscleOf2016", 
        "avatar": "https://cdn.v2ex.com/avatar/b78d/58b9/182337_large.png?m=1715430621"
      }, 
      "url": "https://www.v2ex.com/t/1028001", 
      "title": "Electron \u5982\u4f55\u5b9e\u73b0\u7c7b\u4f3c\u5fae\u4fe1\u901a\u8fc7\u53e6\u5916\u7684 exe \u5e94\u7528\u6253\u5f00\u5c0f\u7a0b\u5e8f\uff1f", 
      "id": "https://www.v2ex.com/t/1028001", 
      "date_published": "2024-03-29T01:59:32+00:00", 
      "content_html": "<p>\u5982\u679c Electron \u6240\u6709\u7684\u5e94\u7528\uff0c\u5185\u7f6e\u6d4f\u89c8\u5668\u90fd\u901a\u8fc7\u521b\u5efa\u65b0\u7a97\u53e3\u53bb\u5b9e\u73b0\uff0c\u86ee\u5403\u5185\u5b58\u7684\u3002\n\u5fae\u4fe1\u6253\u5f00\u5c0f\u7a0b\u5e8f/\u7f51\u9875\u94fe\u63a5\uff0c\u597d\u50cf\u662f\u901a\u8fc7\u53e6\u5916\u5355\u72ec\u7684 exe \u53bb\u542f\u52a8\u7684\uff1f\u6709\u76f8\u5173\u7684\u6587\u6863/\u5f00\u6e90\u9879\u76ee\u4e86\u89e3\u4e0b\u561b\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/chaos93", 
        "name": "chaos93", 
        "avatar": "https://cdn.v2ex.com/avatar/c4b9/e5f6/210511_large.png?m=1597968590"
      }, 
      "url": "https://www.v2ex.com/t/1027992", 
      "title": "\u8bf7\u95ee\u6709\u6ca1\u6709 Electron \u7684\u811a\u624b\u67b6\u5de5\u7a0b", 
      "id": "https://www.v2ex.com/t/1027992", 
      "date_published": "2024-03-29T01:47:08+00:00", 
      "content_html": "<p>\u6709\u6ca1\u6709\u76f8\u5173\u7c7b\u4f3c\u7684\u9879\u76ee\uff0c\u6709\u7b80\u5355\u4f8b\u5b50\u7684\uff0c\u53ef\u4ee5\u4e8c\u6b21\u5f00\u53d1\uff0c\u89c4\u8303\u4e5f\u6bd4\u8f83\u597d\u7684</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/ill", 
        "name": "ill", 
        "avatar": "https://cdn.v2ex.com/gravatar/aed559c50a11a47485226a88217cc0c7?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1027021", 
      "date_modified": "2024-03-26T02:13:04+00:00", 
      "content_html": "<p>\u4f7f\u7528\u8fc7 nextjs \u5f00\u53d1\u4e00\u4e9b\u9875\u9762\uff0c\u611f\u89c9\u4f53\u9a8c\u4e0d\u9519</p>\n<p>\u9700\u6c42\uff1a</p>\n<pre><code>\u672c\u5730\u5e94\u7528\uff0c\u7ed9\u5c0f\u767d\u4f7f\u7528\uff0c\u6bcf\u6b21\u90fd\u9700\u8981 npm run start \u542f\u52a8\u5f88\u4e0d\u4f18\u96c5\uff0c\u60f3\u6253\u5305\u6210\u4e00\u4e2a\u53ef\u6267\u884c\u7a0b\u5e8f\n\n\u5e94\u7528\u9700\u8981\u4f7f\u7528\u4e00\u4e9b\u4e32\u53e3\u3001ws \u3001\u52a0\u5bc6\u7684 API \uff0c\u6240\u4ee5\u4e00\u4e9b\u670d\u52a1\u7eaf\u524d\u7aef\u5b9e\u73b0\u4e0d\u4e86\uff0c\u9700\u8981\u8fd0\u884c\u5728 Nodejs \u91cc\n\n\u7edf\u4e00\u524d\u7aef\u6d4f\u89c8\u5668\u5185\u6838\u7248\u672c\n\n\u4e0d\u592a\u60f3\u4f7f\u7528 Nextron \u6846\u67b6\n</code></pre>\n<p>\u4e86\u89e3\u5230 Electron=Nodejs+Chromium \uff0c\u611f\u89c9\u5f88\u5bf9\u53e3\uff0c\u4f46\u770b Electron \u5b98\u7f51\u6559\u7a0b\uff0c\u6bcf\u4e2a\u9875\u9762\u90fd\u9700\u8981 main.js \u3001preload.js \u3001index.html \u3001renderer.js \u56db\u4e2a\u6587\u4ef6\uff0c\u903b\u8f91\u4e5f\u5199\u5728\u91cc\u9762\uff0c\u8fd9\u4e2a\u5f00\u53d1\u4f53\u9a8c\u611f\u89c9\u548c Nextjs \u4e0d\u592a\u4e00\u6837\u3002</p>\n<p>\u6211\u60f3\u7684\u662f Nextjs \u8dd1\u5728 Nodejs \u91cc\u9762\uff0cChromium \u6e32\u67d3 url \u9875\u9762\uff0c\u8fd9\u6837\u5f00\u53d1\u4f53\u9a8c\u57fa\u672c\u4fdd\u6301 Nextjs \u4e00\u6837\u3002\u6253\u5305\u540e\u7528\u6237\u80fd\u4e00\u952e\u6253\u5f00\u3002</p>\n<p>\u95ee\u9898\uff1a</p>\n<pre><code>1  \u662f\u6211\u628a\u5f00\u53d1\u6d41\u7a0b\u60f3\u7b80\u5355\u4e86\uff1f\u6b63\u5e38\u7684\u6d41\u7a0b\u662f\u4ec0\u4e48\u6837\uff1f\n\n2  \u8c37\u6b4c\u770b\u4e24\u4e09\u7bc7\u6587\u7ae0\u597d\u50cf\u662f\u8bf4 Nextjs \u7684 App Router \u5728 Electron \u4e2d\u6ca1\u6cd5\u4f7f\u7528\uff1f\n\n3  \u6211\u770b\u5b98\u7f51\u7684\u65b9\u5f0f\uff0c\u6bcf\u6b21\u90fd\u9700\u8981\u5728 html \u8bbe\u7f6e id \uff0c\u7136\u540e getElementById \uff0c\u8bbe\u7f6e\u4e8b\u4ef6\uff0c\u597d\u9ebb\u70e6\u5440\uff1f\n</code></pre>\n", 
      "date_published": "2024-03-26T02:05:00+00:00", 
      "title": "\u8bf7\u6559 Nextjs \u4e0e Electron \u7684\u53ef\u884c\u6027", 
      "id": "https://www.v2ex.com/t/1027021"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/SaltedFish12138", 
        "name": "SaltedFish12138", 
        "avatar": "https://cdn.v2ex.com/avatar/5183/7925/102279_large.png?m=1574731643"
      }, 
      "url": "https://www.v2ex.com/t/1026000", 
      "title": "Windows \u4e0a Electron \u7c7b app \u5361\u6b7b\u95ee\u9898\uff08\u6bd4\u5982 vscode\u3001tabby\uff09", 
      "id": "https://www.v2ex.com/t/1026000", 
      "date_published": "2024-03-22T02:44:16+00:00", 
      "content_html": "<h2>\u73b0\u8c61</h2>\n<ol>\n<li>Windows 11 \u4e0a</li>\n<li>vscode \u3001tabby \u7b49\uff08\u76ee\u524d\u770b\uff0c\u5171\u540c\u70b9\u90fd\u662f\u57fa\u4e8e Electron \u7684 app \uff09\uff0c</li>\n<li>\u5728\u4e00\u6bb5\u65f6\u95f4\uff08\u6709\u65f6\u662f\u4e00\u591c\uff0c\u6709\u65f6\u662f\u4e24\u4e09\u4e2a\u5c0f\u65f6\uff09\u65e0\u64cd\u4f5c\u540e\uff0c </li>\n<li>\u51fa\u73b0\u754c\u9762\u4e0a\u6309\u94ae\u3001\u7f16\u8f91\u6846\u3001\u83dc\u5355\u65e0\u6cd5\u70b9\u51fb\u4ea4\u4e92\u7684\u95ee\u9898</li>\n<li>\u4e0d\u662f Windows \u7a0b\u5e8f\u65e0\u54cd\u5e94\uff0c\u7a97\u53e3\u662f\u53ef\u4ee5\u62d6\u52a8\u3001\u7f29\u653e</li>\n<li>\u62d6\u52a8\u548c\u7f29\u653e\u7a97\u53e3\u540e\uff0c \u6709\u4e00\u5b9a\u51e0\u7387\u4f1a\u53ef\u4ee5\u4f7f\u7528</li>\n</ol>\n<h2>\u8865\u5145</h2>\n<ul>\n<li>\n<p>\u7535\u8111\u662f Dell OptiPlex 7080</p>\n</li>\n<li>\n<p>\u5728\u53e6\u5916\u4e00\u53f0 macos \u4e0a\u6ca1\u6709\u9047\u5230\u8fc7\u7c7b\u4f3c\u95ee\u9898</p>\n</li>\n<li>\n<p>\u540c\u4e8b\u7684 Windows \u7b14\u8bb0\u672c\u4e5f\u6ca1\u7c7b\u4f3c\u60c5\u51b5</p>\n</li>\n<li>\n<p>\u5361\u6b7b\u53d1\u751f\u65f6\uff0c \u5176\u4ed6\u8f6f\u4ef6\u4f7f\u7528\u6b63\u5e38</p>\n</li>\n<li>\n<p>\u88c5\u4e86\u706b\u7ed2\uff0c \u4f46\u5b89\u88c5\u524d\u4f7f\u7528 Windows defender \u65f6\u5019\u4e5f\u6709\u8fd9\u4e2a\u95ee\u9898\uff0c \u731c\u6d4b\u4e0d\u662f\u6740\u6bd2\u8f6f\u4ef6\u95ee\u9898</p>\n</li>\n<li>\n<p>\u91cd\u88c5\u8fc7 Windows \uff0c \u91cd\u88c5\u524d\u540e\u90fd\u6709\u76f8\u540c\u95ee\u9898</p>\n</li>\n<li>\n<p>Windows \u4e00\u5468\u5de6\u53f3\u91cd\u542f\u4e00\u6b21</p>\n</li>\n</ul>\n<p>\u5e0c\u671b\u5927\u5bb6\u7ed9\u51fa\u51fa\u4e3b\u610f\uff0c \u770b\u770b\u6709\u4ec0\u4e48\u6392\u67e5\u548c\u89e3\u51b3\u601d\u8def\u3002\n\u8c22\u8c22\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/threeti", 
        "name": "threeti", 
        "avatar": "https://cdn.v2ex.com/avatar/04f8/9743/347664_large.png?m=1729845591"
      }, 
      "url": "https://www.v2ex.com/t/1014546", 
      "title": "electron \u548c Java swing \u5f00\u53d1\u51fa\u7684\u8f6f\u4ef6 \u54ea\u4e2a\u4f53\u9a8c\u597d", 
      "id": "https://www.v2ex.com/t/1014546", 
      "date_published": "2024-02-06T01:04:49+00:00", 
      "content_html": "\u5728 win\\linux\\mac \u5e73\u65f6\u4e0a, \u5f00\u53d1\u51fa\u7684\u8f6f\u4ef6 \u54ea\u4e2a\u4f53\u9a8c\u4f1a\u597d\u4e9b"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/soclearn", 
        "name": "soclearn", 
        "avatar": "https://cdn.v2ex.com/gravatar/e74f5c447074cfb7901e0ec35cd3c5ec?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1013547", 
      "title": "\u54ea\u4e00\u4e2a electron \u6253\u5305\u5de5\u5177\u662f\u628a\u591a\u5e73\u53f0\u7684 native modules \u4e0e\u4e1a\u52a1\u903b\u8f91 app \u5f7b\u5e95\u9694\u5f00\u7684\uff0c\uff0c\u8fd9\u6837\u4e09\u5e73\u53f0\uff0c\u53ea\u9700\u8981\u5b89\u88c5\u8be5\u5e73\u53f0\u7684 electron\uff0c\u7136\u540e\u53d1\u5e03\u4e00\u4e2a\u7edf\u4e00\u7684 app.asar \u6216 app source \u5c31\u53ef\u4ee5", 
      "id": "https://www.v2ex.com/t/1013547", 
      "date_published": "2024-02-01T17:03:17+00:00", 
      "content_html": "<p>\u6211\u7684\u610f\u601d\u662f\uff1a\u7c7b\u4f3c npm start dev \u4e0d\u6253\u5305\uff0c\u6e90\u7801\u6a21\u5f0f\u8fd0\u884c app \u7684\u6548\u679c\n\u4f46\u53c8\u7ed3\u5408\u6709\u6253\u5305\u8fc7\u540e\u7684\u542f\u52a8\u901f\u5ea6</p>\n<p>\u8fd9\u6837\u7684\u4e00\u4e2a\u6253\u5305\u5de5\u5177</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/wxf666", 
        "name": "wxf666", 
        "avatar": "https://cdn.v2ex.com/gravatar/a983d2278ab678b79cd8d7f54d2e86a4?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/1012408", 
      "title": "\u5185\u5d4c\u6d4f\u89c8\u5668\uff08CEF\uff09\u6709\u65f6\u4f1a\u5d29\u6e83\u767d\u5c4f\u3002\u5982\u4f55\u5728\u5d29\u6e83\u65f6\uff0c\u4fdd\u5b58\u4e00\u4efd JS \u548c DOM \u5806\u5185\u5b58\u5feb\u7167\u5462\uff1f", 
      "id": "https://www.v2ex.com/t/1012408", 
      "date_published": "2024-01-29T05:20:43+00:00", 
      "content_html": "<p>\u5982\u9898\u3002\u8282\u70b9\u627e\u4e0d\u5230 CEF \uff0c\u53ea\u80fd\u627e\u4e2a\u7c7b\u4f3c\u7684 Electron \u4e86\u3002</p>\n<p>\u6073\u8bf7\u5404\u4f4d\u5927\u4f6c\u63d0\u4f9b\u4e9b\u601d\u8def\uff01</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/muwoo", 
        "name": "muwoo", 
        "avatar": "https://cdn.v2ex.com/avatar/cb2d/3bd6/528109_large.png?m=1695193370"
      }, 
      "url": "https://www.v2ex.com/t/1007724", 
      "date_modified": "2024-01-13T11:02:33+00:00", 
      "content_html": "<p>\u6216\u8bb8\u662f\u53f2\u4e0a\u6700\u5168\u7684 Electron \u5b9e\u6218\u6559\u7a0b\uff0c \u4ee5\u4ece\u96f6\u5f00\u59cb\u5f00\u53d1\u4e00\u4e2a Rubick \u6548\u7387\u5de5\u5177\u4e3a\u5b9e\u6218\u5185\u5bb9\uff0c\u4ecb\u7ecd electron \u7684\u57fa\u7840\u77e5\u8bc6\u3001\u539f\u751f\u6269\u5c55\u5f00\u53d1\u3001 \u6253\u5305\u3001 \u6027\u80fd\u4f18\u5316\u3001 \u81ea\u52a8\u5316\u5316\u6d4b\u8bd5\u3001\u5b89\u5168\u6027\u7b49\u7b49\u65b9\u9762\u3002</p>\n<h3><a href=\"https://juejin.cn/book/7302990019642261567\" rel=\"nofollow\">\u300a Electron \u5e94\u7528\u5f00\u53d1\u5b9e\u8df5\u6307\u5357\u300b</a></h3>\n<p><strong>V2EX \u4e0a\u7684\u5c0f\u4f19\u4f34\u53e6\u5916\u53ef\u4eab 5 \u6298\u6700\u4f4e\u4f18\u60e0\uff0c\u4f18\u60e0\u7801\uff1aefJDNnAR</strong></p>\n<p><img alt=\"image.png\" class=\"embedded_image\" loading=\"lazy\" referrerpolicy=\"no-referrer\" rel=\"noreferrer\" src=\"https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5444ca697ef94e0886551252f645e861%7Etplv-k3u1fbpfcp-jj-mark:0:0:0:0:q75.image#?w=1500&amp;h=1564&amp;s=588171&amp;e=png&amp;b=fffefe\"/></p>\n<p>\u672c\u5c0f\u518c\u4e3b\u8981\u5206\u6210\u4e09\u5927\u6a21\u5757\u4ecb\u7ecd Electron \u5f00\u53d1\u4e2d\u9700\u8981\u5b66\u4e60\u3001\u5904\u7406\u3001\u89e3\u51b3\u7684\u95ee\u9898\u3002</p>\n<p>\u6a21\u5757\u4e00\uff1aElectron \u57fa\u7840\u7bc7\u3002\u4ee5\u6700\u901a\u4fd7\u6613\u901a\u7684\u65b9\u5f0f\u4ecb\u7ecd Electron \u7684\u4e00\u4e9b\u6838\u5fc3\u6982\u5ff5\u548c Electron \u7684\u539f\u751f\u80fd\u529b\u3002\u5e0c\u671b\u901a\u8fc7\u8be5\u6a21\u5757\u7684\u5b66\u4e60\u8ba9\u4f60\u5bf9 Electron \u7684\u6574\u4f53\u9aa8\u67b6\u6709\u4e00\u4e2a\u6e05\u6670\u7684\u8ba4\u77e5\uff0c\u53ef\u4ee5\u5f00\u59cb\u5165\u5751 Electron \u3002</p>\n<p>\u6a21\u5757\u4e8c\uff1aElectron \u5b9e\u6218\u7bc7\u3002\u901a\u8fc7\u57fa\u7840\u7bc7\u7684\u5b66\u4e60\u540e\uff0c\u76f8\u4fe1\u4f60\u4e00\u5b9a\u5e0c\u671b\u52a8\u624b\u5b9e\u64cd\uff0c\u672c\u6a21\u5757\u5c06\u4f1a\u4ece\u96f6\u5f00\u59cb\u4ee5 Rubick \u4e3a\u539f\u578b\u6765\u63ed\u79d8\u684c\u9762\u7aef\u5de5\u5177\u5f00\u53d1\u7684\u6838\u5fc3\u79d8\u5bc6\u3002\u672c\u6a21\u5757\u6240\u6709\u6e90\u7801\u90fd\u6e90\u81ea Rubick \uff0c\u4f60\u53ef\u4ee5\u8fb9\u8c03\u8bd5\u8fb9\u770b\uff0c\u8fdb\u4e00\u6b65\u52a0\u5f3a\u7406\u89e3\u3002</p>\n<p>\u6a21\u5757\u4e09\uff1aElectron \u901a\u7528\u7bc7\u3002\u672c\u6a21\u5757\u91cd\u70b9\u4ecb\u7ecd\u5f00\u53d1 Electron \u4f1a\u9047\u5230\u7684\u4e00\u4e9b\u901a\u7528\u95ee\u9898\uff0c\u5305\u62ec\uff1a\u5e94\u7528\u7684\u6253\u5305\u3001\u66f4\u65b0\u3001\u81ea\u52a8\u5316\u6d4b\u8bd5\u3001\u6027\u80fd\u4f18\u5316\u3001\u5185\u5b58\u4f18\u5316\u7b49\u7b49\uff0c\u5e76\u7ed9\u51fa\u4e00\u4e9b\u5e38\u7528\u7684\u89e3\u51b3\u65b9\u6848\u3002</p>\n", 
      "date_published": "2024-01-11T02:32:09+00:00", 
      "title": "\u4eca\u5e74\u5199\u7684\u7b2c\u4e00\u672c Electron \u8bfe\u7a0b\u4e0a\u7ebf\u5566\uff0c\u6b22\u8fce\u6765\u6367\u573a\ud83c\udf89", 
      "id": "https://www.v2ex.com/t/1007724"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qianzhu", 
        "name": "qianzhu", 
        "avatar": "https://cdn.v2ex.com/avatar/5b72/7050/544747_large.png?m=1751256009"
      }, 
      "url": "https://www.v2ex.com/t/1004392", 
      "title": "electron svg \u4f1a\u4fdd\u7559 \u2018\u75d5\u8ff9\u2019", 
      "id": "https://www.v2ex.com/t/1004392", 
      "date_published": "2023-12-29T05:18:11+00:00", 
      "content_html": "<p>\u6211\u5728\u4e3b\u7a97\u53e3\u8bbe\u7f6e\u4e86 <code>win.setVisibleOnAllWorkspaces(true, { visibleOnFullScreen: false })</code>\uff0c\u7136\u540e\u5728\u9875\u9762\u4e2d\u4f7f\u7528 svg \u521b\u5efa\u4e86\u4e00\u4e2a\u53ef\u4ee5\u5199\u5b57\u7684\u767d\u677f\u3002</p>\n<p>\u6211\u53d1\u73b0\uff0c\u6211\u5728 A \u7a97\u53e3\u753b\u4e86\u4e00\u6761\u7ebf\uff0c\u5728 B \u7a97\u53e3\u6e05\u9664\u6389\u8fd9\u6761\u7ebf\uff0cB \u7a97\u53e3\u4f1a\u7559\u4e0b\u90a3\u6761\u7ebf\u7684\u75d5\u8ff9\u3002\u53cd\u8fc7\u6765\u5728 B \u4e2d\u753b\uff0cA \u4e2d\u6e05\u9664\u4e5f\u662f\u4e00\u6837\u4f1a\u7559\u6709\u75d5\u8ff9\u3002</p>\n<p>electron: 25.6.0\nMacOS x86 Sonoma 14.2.1</p>\n<p>\u5173\u952e\u4ee3\u7801\uff1a <a href=\"https://gist.github.com/syt-honey/3823d059e16dbe8dfc150b18169e822a\" rel=\"nofollow\">https://gist.github.com/syt-honey/3823d059e16dbe8dfc150b18169e822a</a></p>\n<p>\u75d5\u8ff9\uff1a <a href=\"https://user-images.githubusercontent.com/36325249/293312786-fb09afe3-0ac4-45f4-aa9e-4318251c4444.png\" rel=\"nofollow\">https://user-images.githubusercontent.com/36325249/293312786-fb09afe3-0ac4-45f4-aa9e-4318251c4444.png</a></p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/SnowHall", 
        "name": "SnowHall", 
        "avatar": "https://cdn.v2ex.com/avatar/2c6b/258e/666006_large.png?m=1739366664"
      }, 
      "url": "https://www.v2ex.com/t/998983", 
      "title": "\u540e\u7aef\u5b66\u4e60 Electron,\u6709\u6ca1\u6709\u597d\u7684\u5f00\u6e90\u9879\u76ee\u7528\u6765\u5b66\u4e60\u4e00\u4e0b\uff1f", 
      "id": "https://www.v2ex.com/t/998983", 
      "date_published": "2023-12-09T11:07:03+00:00", 
      "content_html": "<p>\u80cc\u666f\uff1a\u672c\u4eba\u662f\u540e\u7aef\u5f00\u53d1\uff0c\u60f3\u5b66\u4e60\u4e00\u4e0b Electron \u5f00\u53d1\u4e00\u4e9b\u5de5\u5177\u7ed9\u81ea\u5df1\u548c\u8eab\u8fb9\u7684\u670b\u53cb\u7528\u3002\u8ddf\u7740\u5b98\u7f51\u5b66\u7684\u8bdd\u611f\u89c9\u6bd4\u8f83\u6162\uff0c\u6211\u4e60\u60ef\u5b66\u4e60\u4e00\u4e9b\u57fa\u672c\u7684\u77e5\u8bc6\u540e\u4ece\u9879\u76ee\u5165\u624b\uff0c\u8fd9\u6837\u638c\u63e1\u8d77\u6765\u6bd4\u8f83\u5feb\uff0c\u4f46\u662f\u6211\u5728 Github \u548c Gitee \u4e0a\u6ca1\u627e\u5230\u5408\u9002\u7684\u9879\u76ee\uff0c\u6240\u4ee5\u95ee\u95ee\u795e\u901a\u5e7f\u5927\u7684 V \u53cb\u6709\u6ca1\u6709\u597d\u7684\u9879\u76ee\u63a8\u8350\u3002</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/rekulas", 
        "name": "rekulas", 
        "avatar": "https://cdn.v2ex.com/avatar/ff00/e7ff/173283_large.png?m=1760022610"
      }, 
      "url": "https://www.v2ex.com/t/992263", 
      "date_modified": "2023-11-20T00:16:21+00:00", 
      "content_html": "<p>\u76f4\u5230 2023 \u7528 chrome \u5076\u5c14\u5c31\u4f1a\u9047\u5230\u952e\u9f20\u5931\u53bb\u54cd\u5e94(\u4efb\u52a1\u7ba1\u7406\u5668\u663e\u793a\u72b6\u6001\u6b63\u5e38)\u7684\u95ee\u9898,\u53ea\u6709\u91cd\u542f\u89e3\u51b3,\u4e0d\u8fc7\u51fa\u73b0\u6982\u7387\u4e0d\u662f\u5f88\u5927\u4e5f\u90fd\u4e60\u60ef\u4e86.</p>\n<p>\u800c\u57fa\u4e8e\u540c\u6b3e\u5185\u6838\u7684 electron \u7cfb\u8f6f\u4ef6\u4e5f\u4f1a\u9047\u5230\u8fd9\u79cd\u5931\u53bb\u54cd\u5e94\u7684\u95ee\u9898,\u6982\u7387\u8fdc\u9ad8\u4e8e\u6d4f\u89c8\u5668,\u751a\u81f3\u6709\u4e9b\u8f6f\u4ef6\u6bcf\u5929\u90fd\u4f1a\u51fa\u73b0,\u8ba9\u6211\u4e0d\u5f97\u4e0d\u91cd\u542f\u8f6f\u4ef6\u624d\u80fd\u6062\u590d,\u5df2\u7ecf\u5f71\u54cd\u5230\u4e86\u4e2a\u4eba\u6b63\u5e38\u529e\u516c\u4e86,\u5176\u5b9e\u6211\u5bf9 electron \u672c\u8eab\u5e76\u4e0d\u53cd\u611f,\u81ea\u5df1\u4e5f\u505a\u8fc7 electron \u8f6f\u4ef6,\u4f46\u662f\u6700\u8fd1 2 \u5e74\u603b\u611f\u89c9\u5e95\u5c42\u53cd\u800c\u6ca1\u4ee5\u524d\u7a33\u5b9a\u4e86,\u52a8\u4e0d\u52a8\u5c31\u5361\u6b7b,\u4e0d\u662f\u4e00\u4e24\u53f0\u7535\u8111,\u591a\u53f0\u4e0d\u540c\u7535\u8111\u591a\u4e2a win10 \u7248\u672c\u90fd\u51fa\u73b0\u8fc7,\u5305\u62ec\u6211\u73b0\u5728\u7684\u540c\u4e8b,\u4e5f\u9891\u7e41\u9047\u5230,\u6240\u4ee5\u4e0d\u5927\u53ef\u80fd\u662f\u4e2a\u4eba\u8fd0\u6c14\u95ee\u9898.(\u6211\u672c\u4eba\u559c\u6b22\u4f11\u7720\u7535\u8111,\u53ef\u80fd\u8ddf\u8fd9\u4e2a\u4e5f\u6709\u4e00\u5b9a\u5173\u7cfb,\u4e0d\u8fc7\u975e e \u7cfb\u5217\u7684\u8f6f\u4ef6\u4e0d\u4f1a\u6709\u8fd9\u95ee\u9898)</p>\n<p>\u786c\u4ef6\u914d\u7f6e\u5e94\u8be5\u662f\u591f\u7528\u7684 amd intel \u90fd\u51fa\u73b0\u8fc7 r5 2600x/12400f + 64g \u5185\u5b58</p>\n<p>\u76ee\u524d\u4e3a\u6b62\u9047\u5230\u8fc7\u7684\u5bb9\u6613\u5361\u6b7b\u7684 electron \u8f6f\u4ef6\u4e3b\u8981\u8fd9\u51e0\u4e2a</p>\n<p>\u53e3\u7891\u7206\u8868\u7684 vscode(\u524d\u540c\u4e8b\u5c31\u662f\u56e0\u4e3a\u5361\u6b7b\u95ee\u9898\u653e\u5f03\u4e86\u8be5 ide)\njoplin\n\u6dd8\u5b9d\u76f4\u64ad\nbitwarden\n\u9489\u9489(\u4e0d\u592a\u786e\u5b9a\u662f\u4e0d\u662f e,\u6709\u4e9b\u4eba\u8bf4\u7684 nwjs,\u4f46\u5f88\u5bb9\u6613\u5361\u6b7b)</p>\n<p>\u800c\u4e14\u76ee\u524d\u53d1\u73b0\u4e2a\u89c4\u5f8b,\u6709\u5b57\u7b26\u8f93\u5165\u754c\u9762\u7684\u8f6f\u4ef6(\u4f8b\u5982 IDE)\u7279\u522b\u5bb9\u6613\u51fa\u95ee\u9898</p>\n<p>\u73b0\u5728\u4e00\u770b\u5230 electron \u7cfb\u8f6f\u4ef6\u5c31\u5934\u75bc,\u80fd\u4e0d\u5b89\u88c5\u90fd\u5c3d\u91cf\u5c11\u5b89\u88c5,\u4f46\u662f\u6709\u4e9b\u8f6f\u4ef6\u53ea\u6709 electron \u7248\u672c\u4e0d\u5f97\u4e0d\u7528,\u53ea\u80fd\u5e0c\u671b\u4e8e\u4ee5\u540e\u80fd\u6709\u66f4\u597d\u7684\u66ff\u4ee3\u54c1</p>\n", 
      "date_published": "2023-11-15T14:38:13+00:00", 
      "title": "\u5bf9 electron \u7cfb\u8f6f\u4ef6\u7684\u65e0\u54cd\u5e94\u95ee\u9898\u5b9e\u5728\u662f\u70e6\u4e0d\u80dc\u70e6,\u4e0d\u77e5\u9053\u4f55\u65f6\u624d\u80fd\u89e3\u8131", 
      "id": "https://www.v2ex.com/t/992263"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/qianzhu", 
        "name": "qianzhu", 
        "avatar": "https://cdn.v2ex.com/avatar/5b72/7050/544747_large.png?m=1751256009"
      }, 
      "url": "https://www.v2ex.com/t/989869", 
      "title": "electron \u601d\u8def\u6c42\u52a9", 
      "id": "https://www.v2ex.com/t/989869", 
      "date_published": "2023-11-08T06:35:53+00:00", 
      "content_html": "<p>\u6211\u60f3\u8981\u5b9e\u73b0\u4e00\u4e2a\u684c\u9762\u7aef\u7684\u5f55\u5c4f\u5de5\u5177\u3002\u4e3b\u8981\u5b9e\u73b0\u7684\u529f\u80fd\u662f\u5c4f\u5e55\u5f55\u5236\u3001\u58f0\u97f3\u89c6\u9891\u5f55\u5236\u3002</p>\n<p>\u56e0\u4e3a\u662f\u524d\u7aef\u5f00\u53d1\uff0c\u6211\u9009\u62e9\u4e86 electron \u6765\u5f00\u53d1\u3002</p>\n<p>\u6211\u7684\u601d\u8def\u662f\u521b\u5efa\u4e24\u4e2a\u7a97\u53e3\uff0c\u4e00\u4e2a\u662f\u5de5\u5177\u680f\u7528\u6765\u64cd\u4f5c\u5f55\u5236\uff0c\u4e00\u4e2a\u662f\u89c6\u9891\u663e\u793a\u7a97\u53e3\u3002\u4f46\u662f\u73b0\u5728\u9047\u5230\u4e86\u4e00\u4e2a\u95ee\u9898\uff0c\u5de5\u5177\u680f\u7684\u7a97\u53e3\u4e00\u4e9b\u6309\u94ae\u88ab\u70b9\u51fb\u65f6\u9700\u8981\u6709\u5f39\u7a97\u63d0\u793a\u3002\u53ef\u662f\u5de5\u5177\u680f\u672c\u8eab\u7684\u5bbd\u9ad8\u5df2\u7ecf\u786e\u5b9a\u4e86\uff0c\u6211\u60f3\u7740\u518d\u521b\u5efa\u4e00\u4e2a\u7a97\u53e3\u4e13\u95e8\u7528\u6765\u663e\u793a\u5f39\u7a97\u3002\u4f46\u662f\u8fd9\u6837\u4e00\u6765\uff0c\u540e\u9762\u7684\u9875\u9762\u4ea4\u4e92\u611f\u89c9\u90fd\u9700\u8981\u901a\u8fc7\u521b\u5efa\u7a97\u53e3\u6765\u5b9e\u73b0\u3002\u611f\u89c9\u529f\u80fd\u88ab\u6211\u5199\u590d\u6742\u4e86....</p>\n<p>\u6211\u4e4b\u524d\u60f3\u7684\u662f\u53ea\u7528\u4e00\u4e2a\u4e3b\u7a97\u53e3\uff0c\u4f46\u662f\u56e0\u4e3a\u5f55\u5236\u671f\u95f4\u662f\u53ef\u4ee5\u64cd\u4f5c\u684c\u9762\u3001\u4efb\u4f55\u5730\u65b9\u7684\uff0c\u8fd9\u79cd\u65b9\u6848\u4f3c\u4e4e\u5c31\u4e0d\u53ef\u884c\u3002</p>\n<p>\u5927\u5bb6\u5e2e\u6211\u770b\u770b\u6211\u8fd9\u6837\u7684\u601d\u8def\u5bf9\u5417\uff1f\u5982\u679c\u4e0d\u5bf9\uff0c\u8fd9\u79cd\u9700\u6c42\u5e94\u8be5\u600e\u4e48\u5b9e\u73b0\u5462\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/adenlin", 
        "name": "adenlin", 
        "avatar": "https://cdn.v2ex.com/gravatar/faff934a975368d389cd65a3c0071167?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/989127", 
      "date_modified": "2023-11-06T07:19:17+00:00", 
      "content_html": "\u6211\u8fd9\u8fb9\u9047\u5230\u7684\u573a\u666f\u662f electron \u9700\u8981\u8c03\u7528\u4e00\u4e9b\u5df2\u6709\u7684 native \u7ec4\u4ef6\uff0c\u76ee\u524d\u60f3\u4e86\u4e24\u4e2a\u65b9\u6848\uff1a<br />1.\u65b0\u5f00\u4e00\u4e2a\u670d\u52a1\uff0c\u628a native \u7ec4\u4ef6\u585e\u8fdb\u53bb\uff0c\u518d\u63d0\u4f9b\u4e00\u4e2a\u672c\u5730\u7684 http server \u6765\u4f9b electron \u8c03\u7528\uff1b<br />2.\u628a native \u7ec4\u4ef6\u505a\u6210 electron \u7684\u63d2\u4ef6\uff0c\u7136\u540e\u4f9b electron \u8c03\u7528\u3002<br /><br />\u524d\u7aef\u5927\u4f6c\u4eec\u66f4\u559c\u6b22\u54ea\u4e00\u79cd\u65b9\u5f0f\uff1f\u6211\u662f\u5199\u5ba2\u6237\u7aef\u7684\uff0c\u76ee\u524d\u6bd4\u8f83\u504f\u597d\u7b2c\u4e00\u79cd\uff0c\u56e0\u4e3a electron \u7684\u63d2\u4ef6\u6846\u67b6\u9650\u5236\u6709\u70b9\u513f\u591a\u3002\u3002\u3002", 
      "date_published": "2023-11-06T07:17:44+00:00", 
      "title": "\u5411\u524d\u7aef\u5927\u4f6c\u4eec\u8bf7\u6559\u4e00\u4e0b\u5173\u4e8e electron \u8c03\u7528 native \u65b9\u9762\u7684\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/989127"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Atma", 
        "name": "Atma", 
        "avatar": "https://cdn.v2ex.com/gravatar/b1c15e72c553eb28c13984ff07fdfa27?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/988594", 
      "title": "electron \u5931\u7126 \u7cfb\u7edf\u4f11\u7720\u540e\u5b9a\u65f6\u5668\u505c\u6b62\u95ee\u9898", 
      "id": "https://www.v2ex.com/t/988594", 
      "date_published": "2023-11-04T08:22:06+00:00", 
      "content_html": "<p><a href=\"https://www.electronjs.org/docs/latest/api/power-monitor\" rel=\"nofollow\">https://www.electronjs.org/docs/latest/api/power-monitor</a>\n<a href=\"https://www.v2ex.com/t/951996\" rel=\"nofollow\">https://www.v2ex.com/t/951996</a>\n\u9875\u9762\u4e0a\u6709\u4e2a\u79d2\u7ea7\u8ba1\u65f6\u5668\uff0c\u9700\u8981\u4e0d\u65ad\u5237\u65b0\uff0c\u5982\u679c\u91c7\u7528\u7b2c\u4e8c\u4e2a\u5e16\u5b50\u4e2d\u4e3b\u8fdb\u7a0b ipc \u7684\u65b9\u6cd5\uff0c\u6bcf\u79d2\u8fc7\u4e8e\u9891\u7e41\uff0c\u5927\u5bb6\u6709\u5176\u4ed6\u597d\u7684\u529e\u6cd5\u4e0d\uff1f</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/xanta", 
        "name": "xanta", 
        "avatar": "https://cdn.v2ex.com/gravatar/4aa71900c2b029f95e1e551739525209?s=73&d=retro"
      }, 
      "url": "https://www.v2ex.com/t/988418", 
      "title": "Lossless-Cut \u8fd9\u4e2a repo \u8c01\u80fd\u5e2e\u6211\u770b\u770b", 
      "id": "https://www.v2ex.com/t/988418", 
      "date_published": "2023-11-03T12:09:58+00:00", 
      "content_html": "<p><a href=\"https://github.com/mifi/lossless-cut/blob/master/developer-notes.md\" rel=\"nofollow\">https://github.com/mifi/lossless-cut/blob/master/developer-notes.md</a></p>\n<p>\u88ab yarn \u641e\u7cca\u6d82\u4e86\uff0c\u5b89\u88c5\u5c31\u62a5\u9519</p>\n<pre><code>\u27a4 YN0002: \u2502 lossless-cut@workspace:. doesn't provide react-is (p8fea6), requested by evergreen-ui\n\u27a4 YN0000: \u2502 Some peer dependencies are incorrectly met; run yarn explain peer-requirements &lt;hash&gt; for details, where &lt;hash&gt; is the six-letter p-prefixed code\n</code></pre>\n<p>\u7136\u540e</p>\n<pre><code>\u27a4 YN0000: lossless-cut@workspace:. doesn't provide react-is, breaking the following requirements:\n\n\u27a4 YN0000: evergreen-ui@npm:6.13.1 [3c853] \u2192 ^16.8.0 || ^17.0.0 || ^18.0.0 \u2718\n</code></pre>\n<p>yarn add \u4e5f\u4e0d\u597d\u4f7f</p>\n<p>electron \u7684 build \u4e5f\u4f1a\u62a5\u9519,build log:</p>\n<pre><code># This file contains the result of Yarn building a package (electron@npm:27.0.0)\n# Script name: postinstall\n\nRequestError: unable to verify the first certificate\n    at ClientRequest.&lt;anonymous&gt; (H:\\Work\\Personal\\Electron\\lossless-cut\\node_modules\\got\\dist\\source\\core\\index.js:970:111)\n    at Object.onceWrapper (node:events:629:26)\n    at ClientRequest.emit (node:events:526:35)\n    at origin.emit (H:\\Work\\Personal\\Electron\\lossless-cut\\node_modules\\@szmarczak\\http-timer\\dist\\source\\index.js:43:20)\n    at TLSSocket.socketErrorListener (node:_http_client:501:9)\n    at TLSSocket.emit (node:events:514:28)\n    at emitErrorNT (node:internal/streams/destroy:151:8)\n    at emitErrorCloseNT (node:internal/streams/destroy:116:3)\n    at process.processTicksAndRejections (node:internal/process/task_queues:82:21)\n    at TLSSocket.onConnectSecure (node:_tls_wrap:1550:34)\n    at TLSSocket.emit (node:events:514:28)\n    at TLSSocket._finishInit (node:_tls_wrap:967:8)\n    at ssl.onhandshakedone (node:_tls_wrap:743:12)\n</code></pre>\n<p>\u7136\u540e\u67e5\u4e86\u53ef\u80fd\u662f SSL \u95ee\u9898\u561b\uff0cyarn config set strict-ssl false \u5565\u7684</p>\n<pre><code>Usage Error: Couldn't find a configuration settings named \"strict-ssl\"\n</code></pre>\n<p>\u770b\u4e86\u4e0b yarn \u7248\u672c\uff0c\u9879\u76ee\u7528\u7684\u662f 3.6.4</p>\n<p>\u6211\u5df2\u7ecf\u7cca\u6d82\u4e86\n99 \u5b69\u5b50</p>\n"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/webberQian", 
        "name": "webberQian", 
        "avatar": "https://cdn.v2ex.com/avatar/be74/ac21/536239_large.png?m=1718878525"
      }, 
      "url": "https://www.v2ex.com/t/986100", 
      "date_modified": "2023-11-06T00:02:54+00:00", 
      "content_html": "\u6bcf\u6b21\u5b66\u4e86\u65b0\u7684\u6280\u672f\u6216\u8005\u6846\u67b6 \u4e0d\u7528 \u8fc7\u4e0d\u4e86\u591a\u4e45\u5c31\u4f1a\u5fd8\u8bb0 \u518d\u52a0\u4e0a\u5b66\u8d77\u6765\u67af\u71e5<br /><br />\u6240\u6709\u60f3 \u8fb9\u7ec3\u624b\u8fb9\u5b66\u4e60  \u4f46\u662f\u627e\u4e0d\u5230\u597d\u7684\u7ec3\u624b\u9879\u76ee <br /><br />\u4e0d\u77e5\u9053\u5927\u4f6c\u4eec\u6709\u6ca1\u6709\u63a8\u8350", 
      "date_published": "2023-10-27T10:01:14+00:00", 
      "title": "\u5927\u4f6c\u4eec \u6700\u8fd1\u5728\u5b66 electron \u6709\u6ca1\u6709\u63a8\u8350\u7684\u7ec3\u624b\u9879\u76ee", 
      "id": "https://www.v2ex.com/t/986100"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/Angela2022", 
        "name": "Angela2022", 
        "avatar": "https://cdn.v2ex.com/avatar/c97e/b02e/595802_large.png?m=1668824323"
      }, 
      "url": "https://www.v2ex.com/t/983330", 
      "date_modified": "2023-10-19T00:03:23+00:00", 
      "content_html": "1. chatGPt api \u4f7f\u7528\u6709\u5565\u95e8\u69db\u5417<br /><br />2. \u76f4\u63a5\u7528 chatGPT api, \u6574\u5408\u5230 electron \u9879\u76ee\u6709\u5565\u5f00\u6e90\u9879\u76ee\u5417<br /><br />\u8c22\u8c22", 
      "date_published": "2023-10-19T00:02:34+00:00", 
      "title": "\u8bf7\u95ee\uff1a \u5982\u4f55\u628a chatGpt \u6574\u5408\u5230 electron \u9879\u76ee\u4e2d\uff1f", 
      "id": "https://www.v2ex.com/t/983330"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/NobodyVe2x", 
        "name": "NobodyVe2x", 
        "avatar": "https://cdn.v2ex.com/avatar/523d/2a03/232700_large.png?m=1729694002"
      }, 
      "url": "https://www.v2ex.com/t/978712", 
      "title": "Electron \u96c6\u6210 firebase", 
      "id": "https://www.v2ex.com/t/978712", 
      "date_published": "2023-10-03T06:02:19+00:00", 
      "content_html": "\u8c8c\u4f3c firebase \u5b98\u65b9\u5e76\u4e0d\u652f\u6301 electron,  \u6709\u5927\u4f6c\u505a\u8fc7\u5417\uff1f \u611f\u8c22"
    }, 
    {
      "author": {
        "url": "https://www.v2ex.com/member/pdog18", 
        "name": "pdog18", 
        "avatar": "https://cdn.v2ex.com/avatar/1aa8/8bfa/238564_large.png?m=1732532005"
      }, 
      "url": "https://www.v2ex.com/t/975635", 
      "date_modified": "2023-09-20T11:32:00+00:00", 
      "content_html": "<p>\u6211\u4e86\u89e3\u5230\uff0c\u622a\u56fe\u5de5\u5177\u4e00\u822c\u90fd\u662f\u83b7\u53d6\u7a97\u53e3\u7136\u540e\u5728\u4e00\u4e2a\u65b0\u7684\u7a97\u53e3\u4e2d\u8fdb\u884c\u7f16\u8f91\uff0c\u4f46\u662f Electron \u6253\u5f00\u65b0\u7a97\u53e3\u7684\u64cd\u4f5c\u5c31\u7279\u522b\u660e\u663e\uff0c\u8fdc\u8fdc\u4e0d\u5982\u666e\u901a\u622a\u56fe\u5de5\u5177\u663e\u793a\u622a\u56fe\u7f16\u8f91\u9875\u7684\uff08\u65e0\u611f\u77e5\uff09\n\u6240\u4ee5\u4e3a\u4e86\u66f4\u597d\u7684\u4f7f\u7528\u4f53\u9a8c\uff0c\u622a\u56fe\u80af\u5b9a\u4e0d\u80fd\u4f7f\u7528 electron \u81ea\u5df1\u7684 api \u5bf9\u4e0d...</p>\n", 
      "date_published": "2023-09-20T11:16:29+00:00", 
      "title": "\u60f3\u7528 Electron \u505a\u4e00\u4e2a\u622a\u56fe\u5c0f\u5de5\u5177\uff0c\u4f3c\u4e4e\u7b2c\u4e00\u6b65\u6253\u5f00\u7a97\u53e3\u5c31\u6709\u70b9\u95ee\u9898\uff1f", 
      "id": "https://www.v2ex.com/t/975635"
    }
  ]
}