当前位置: 首页 > 知识库问答 >
问题:

Visual Studio代码是否可以配置为启动electron

庾和昶
2023-03-14

因为VisualStudio代码是使用Electron创建的,所以我猜是这样的。json可以配置为使用Electron正确启动应用程序。但我还没弄明白怎么做。

因为电子是基于io的。js,它本身基于节点。js,我在想也许。。。这是可以做到的,但还没有找到魔法。

试过这样的方法。。。来自launch的代码片段。json:

"configurations": [
    {
        // Name of configuration; appears in the launch configuration drop down menu.
        "name": "Launch Electron",
        // Type of configuration. Possible values: "node", "mono".
        "type": "node",
        // Workspace relative or absolute path to the program.
        "program": "Y:\\dev\\electron\\electron.exe",
        // Automatically stop program after launch.
        "stopOnEntry": false,
        // Command line arguments passed to the program.
        "args": ["CrawlSpace_Electron\\"],
        // Workspace relative or absolute path to the working directory of the program being debugged. Default is the current workspace.
        "cwd": ".",
        // Workspace relative or absolute path to the runtime executable to be used. Default is the runtime executable on the PATH.
        "runtimeExecutable": null,
        // Environment variables passed to the program.
        "env": { }
    }, 

它确实启动了电子,但失败了(窗口消失得太快,看不出确切的原因)。

有什么想法吗?

共有3个答案

张卓
2023-03-14

从理论上讲,以下方法应该有效:指定电子。exe作为“runtimeExecutable”(因为它取代了节点运行时)。电子程序(“爬行空间\电子”)成为“程序”。VSCode自动将“-debug brk”或“-debug”传递给electron。exe。实际上,VSCode还不支持此设置,因为VSCode的预览版本会尝试验证“program”属性是否是磁盘上存在的文件。但对于electron,“程序”必须是一个目录。我已经在我们这边创建了一个bug,并将确保它在下一版本中得到修复。

华星驰
2023-03-14

是的,可以。VSCode不仅可以发射电子,还可以调试它。

使用节点您可以调试电子的主进程,但是使用调试器Chrome您也可以调试电子的渲染器进程。我就这个话题写了一篇博文:http://code.matsu.io/1.

目前投票率最高的答案有点过时。

  • 您应该使用electron而不是electron预构建。看见http://electron.atom.io/blog/2016/08/16/npm-install-electron

以下是两个预配置的项目:https://github.com/octref/vscode-electron-debug.

  • 一个配置为运行电子/电子-快速启动
  • 一个由电子/电子-快速-启动修改为使用ES6

这是启动。第一个项目的json。要运行目标“调试渲染器进程”,您需要安装Chrome的调试器。但“调试主进程”在普通VSC代码上运行良好。

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug Main Process",
      "type": "node",
      "request": "launch",
      "cwd": "${workspaceRoot}",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      // Use the following for Windows
      // "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd",
      "program": "${workspaceRoot}/main.js"
    },
    {
      "name": "Debug Renderer Process",
      "type": "chrome",
      "request": "launch",
      "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
      // Use the following for Windows
      // "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd",
      "runtimeArgs": [
        "${workspaceRoot}/main.js",
        "--remote-debugging-port=9222"
      ],
      "webRoot": "${workspaceRoot}"
    }
  ]
}
隗翰海
2023-03-14

如果你指定电子。exe作为运行时可执行文件(如前所述),您可以传递main。js文件作为程序,它将工作。Electron允许您指定目录或主目录。js文件,因为这几乎就是软件包的内容。json指向。在我的启动中使用下面的配置。json文件,按F5键,我的应用程序启动了Electron,并将调试器连接到主进程(最终)。。。

{
    "name": "Launch Electron",
    "type": "node",
    "program": "${workspaceRoot}/app/main.js", // ensure this is path to main.js file
    "stopOnEntry": false,
    "args": [], 
    "cwd": "${workspaceRoot}",
    // as you have noted, this is also important:
    "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron.cmd"
}, 

我的主菜。js文件位于我通常会传递给Electron的应用程序文件夹中。

 类似资料:
  • 问题内容: 如标题所述,我想基于仅在运行时可用的信息来动态加载(或不)动态加载Go软件包。 目的是允许用户通过添加新的本机脚本命令的自定义程序包扩展程序。当前,每次我添加新命令或禁止使用某些命令时,都需要编辑程序并重新编译,而如果我可以制作某种dll之类的文件,则可以创建一个“导入”脚本命令来搜索和加载命名命令库。 出于好奇,该程序是基于定制命令的脚本库,我将其用于各种用途。 我提前进行了一些搜索

  • 我有以下代码: 可以用代码设置吗?如果是,怎么做? 我想按代码设置,因为我想解决另一个问题,请单击此处 一个人告诉我使用lookup get selector,但它返回null。 下面的代码就是我所做的?你能告诉我怎么了吗? 任何帮助都将不胜感激。

  • 我试图针对H2数据库运行jOOQ代码生成器,但遇到以下异常: 我已经核实了数据库确实存在。我怀疑这是由于区分大小写处理不匹配造成的: jOOQ引用所有模式对象的名称,作为指定case instivity的一种方法。。。但是, H2使用引号强制区分大小写 我知道如何以编程方式指定渲染设置来使用生成的工件(构建查询等),但在这种情况下,我正在寻找一种方法来指定代码生成器配置中的这些设置。 提前谢谢!

  • 我正在使用 swagger-codegen 基于我的 Web API 生成 SDK,生成的源文件包含以下标头: 是否可以配置swagger-codecen以不生成标头的最后3行?

  • 问题内容: 对于我的调试需求,还算不错。但是,如果可以的 话 ,它会更酷(并且很有帮助)。这可能吗? 问题答案: 有一个项目将iPython嵌入到标准pdb中,因此您可以执行以下操作: 可通过通常的方式安装。 非常短,因此除了easy_installing之外,您还可以在Python路径上的某个位置创建一个文件,并将以下内容粘贴到该文件中:

  • 问题内容: 说我有两个JavaBeans 和。 如果创建一个Person对象的列表,我想编组成这样的东西: 可以使用这里描述的技术: 使用JAXB解组/编组List 通过使用和注释JaxbList,可以将其编组为上述XML。 但是,能够重用相同的类来封送对象列表也很好。实际上,我将有许多其他类型的bean。我可以这样: 但是,理想情况下,最好用类名的复数形式替换“列表”,用类名替换“ item”。