codecamp

IntelliJ IDEA:配置远程Node.js解释器

配置远程Node.js解释器

此功能仅在Ultimate版本中受支持。

在IntelliJ IDEA中,如果要在安装在远程主机或虚拟环境中的Node.js上运行和调试应用程序,则需要配置远程Node.js解释器。这是在“配置Node.js远程解释器对话框”对话框中,该对话框仅从“运行/调试配置:Node.js”打开。

提示:在Node.js和NPM页面上配置本地解释器。

在可通过SSH连接访问的主机上配置远程Node.js解释器

使用准备

  1. 配置对目标远程主机上的ssh服务器的访问,并确保此服务器正在运行。

  2. 按照“插件管理”中的说明在“插件”页面上安装NodeJS和NodeJS远程解释器存储库插件 。

使用SSH凭据配置Node.js解释器

  1. 在主菜单上,选择:运行|编辑配置。在打开的“编辑配置”对话框中,单击“添加新配置”工具栏按钮图标一般添加svg,然后在上下文菜单中选择“Node.js”。在打开的“运行/调试配置:Node.js”对话框中,单击“Node解释器”字段旁边的browseButton

  2. 在打开的“Node.js解释器”对话框中,其中包含所有当前配置的解释器的列表,单击工具栏上的图标一般添加svg。在打开的对话框中,选择上下文菜单中的“添加远程”。

  3. 在打开的“配置Node.js远程解释器”对话框中,选择“SSH凭据”方法。

  4. 指定远程主机的名称和SSH服务器侦听的端口。默认端口号为22。

  5. 根据在服务器上注册期间收到的凭据,指定您的凭据以访问远程主机。输入您的用户名并选择身份验证方法:
    • 密码:使用密码访问主机。指定密码,然后选择“保存密码”复选框以将密码保存在IntelliJ IDEA中。

    • 密钥对(OpenSSH或PuTTY):使用密钥对的SSH身份验证。要应用此身份验证方法,您必须在客户端计算机上拥有私钥,并在远程服务器上拥有公钥。IntelliJ IDEA支持使用OpenSSH实用程序生成的私钥。

      指定存储私钥的文件的路径,并在相应字段中键入密码(如果有)。要让IntelliJ IDEA记住密码,请选中“保存密码”复选框。

    • OpenSSH配置和身份验证代理:使用由凭据帮助应用程序管理的SSH密钥(例如,Windows上的Pageant,或Mac和Linux上的ssh-agent)。

  6. 根据所选远程开发环境的配置指定Node.js可执行文件的位置。
    • 对于远程主机,默认情况下,IntelliJ IDEA建议使用:/usr/bin/node文件夹。

    • 对于Vagrant实例,默认情况下,IntelliJ IDEA建议使用:/usr/bin/node文件夹。

    • 对于Docker容器,默认情况下,IntelliJ IDEA建议node文件夹。

  7. 单击“确定”后,IntelliJ IDEA将检查Node.js可执行文件是否实际存储在指定的文件夹中。
    • 如果未找到Node.js可执行文件,IntelliJ IDEA将显示一条错误消息,询问您是继续搜索还是保存解释器配置。

    • 如果找到Node.js可执行文件,则返回Node.js Interpreters对话框,其中显示安装文件夹和检测到的Node.js解释器版本。

在Vagrant环境实例中配置远程Node.js解释器

使用准备

  1. 如“插件管理”中所述, 在“插件”页面上安装Vagrant,NodeJS和NodeJS远程解释器存储库插件 。

  2. 确保按照Vagrant中的说明在计算机上下载,安装和配置Vagrant和Oracle的VirtualBox。

  3. 确保将以下可执行文件的父文件夹添加到系统PATH变量中:
    • 您的Vagrant安装中的vagrant.bat或vagrant。这应该由Vagrant安装程序自动完成。

    • Oracle的VirtualBox安装中的VBoxManage.exe或VBoxManage。

  4. 在要使用的Vagrant实例中配置Node.js开发环境。

在Vagrant实例中配置Node.js Interpreter

  1. 在主菜单上,选择:运行|编辑配置。在打开的“编辑配置”对话框中,单击“添加新配置”工具栏按钮图标一般添加svg,然后在上下文菜单中选择“Node.js”。在打开的“运行/调试配置:Node.js”对话框中,单击“Node解释器”字段旁边的browseButton

  2. 在打开的“Node.js解释器”对话框中,其中包含所有当前配置的解释器的列表,单击工具栏上的图标一般添加svg。在打开的对话框中,选择上下文菜单中的“添加远程”。

  3. 在打开的“配置Node.js远程解释器”对话框中,选择Vagrant方法。

  4. 指定指向您要使用的环境的Vagrant实例文件夹。从技术上讲,它是所需环境的VagrantFile配置文件所在的文件夹。根据此设置,IntelliJ IDEA会检测Vagrant主机并将其显示为Vagrant Host URL只读字段中的链接。

  5. 根据所选远程开发环境的配置指定Node.js可执行文件的位置。
    • 对于Vagrant实例,默认情况下,IntelliJ IDEA建议使用:/usr/bin/node文件夹。

    要指定其他文件夹,在打开的对话框中单击打开并选择相关文件夹。请注意,必须打开Node.js主目录才能进行编辑。

  6. 单击“确定”后,IntelliJ IDEA将检查Node.js可执行文件是否实际存储在指定的文件夹中。
    • 如果未找到Node.js可执行文件,IntelliJ IDEA将显示一条错误消息,询问您是继续搜索还是保存解释器配置。

    • 如果找到Node.js可执行文件,则返回Node.js Interpreters对话框,其中显示安装文件夹和检测到的Node.js解释器版本。

在可通过SFTP访问的远程主机上配置远程Node.js解释器

使用准备

  1. 确保sftp服务器正在目标远程主机上运行,​​并且您已配置对它的访问权限。

  2. 确保您至少具有一个SFTP类型的IntelliJ IDEA范围服务器访问配置,以建立对目标主机的访问权限。要在所有IntelliJ IDEA项目中使用配置,请在“部署:连接”选项卡中清除“仅对此项目可见”复选框。

  3. 按照“插件管理”中的说明在Plugins页面上安装NodeJS和NodeJS远程解释器存储库插件 。

基于SFTP服务器访问配置来配置远程Node.js解释器

  1. 在主菜单上,选择:运行|编辑配置。在打开的“编辑配置”对话框中,单击“ 添加新配置”工具栏按钮图标一般添加svg,然后在上下文菜单中选择“Node.js”。在打开的“运行/调试配置:Node.js”对话框中,单击“Node解释器”字段旁边的browseButton

  2. 在打开的“Node.js解释器”对话框中,其中包含所有当前配置的解释器的列表,单击工具栏上的图标一般添加svg。在打开的对话框中,选择上下文菜单中的“添加远程”。

  3. 在打开的配置“Node.js远程解释器”对话框中,选择“部署配置”方法。

  4. 从“部署配置”下拉列表中,选择您希望IntelliJ IDEA连接到目标主机的SFTP类型的服务器访问配置。如果所选配置中指定的设置确保连接成功,则IntelliJ IDEA会在“部署主机URL”字段中将目标主机的URL地址显示为链接。

    要使用解释器配置,您需要路径映射来设置项目文件夹,服务器上用于复制项目文件的文件夹之间的对应关系,以及用于访问服务器上复制数据的URL地址。默认情况下,IntelliJ IDEA从所选的服务器访问(部署)配置中检索路径映射。如果配置不包含路径映射,IntelliJ IDEA将显示相应的错误消息。

    要解决此问题,请打开“ 构建,执行,部署”节点下的“ 部署”页面,选择相关的服务器访问配置,切换到“ 映射”选项卡,然后将本地文件夹映射到服务器上的文件夹,如“ 映射本地文件夹”中所述服务器上的文件夹和访问它们的URL地址部分。

  5. 根据所选远程开发环境的配置 指定Node.js可执行文件的位置。
    • 对于远程主机,默认情况下,IntelliJ IDEA建议使用:/usr/bin/node文件夹。

    • 对于Vagrant实例,默认情况下,IntelliJ IDEA建议使用:/usr/bin/node文件夹。

    • 对于Docker容器,默认情况下,IntelliJ IDEA建议使用node文件夹。

  6. 单击“确定”后,IntelliJ IDEA将检查Node.js可执行文件是否实际存储在指定的文件夹中。
    • 如果未找到Node.js可执行文件,IntelliJ IDEA将显示一条错误消息,询问您是继续搜索还是保存解释器配置。

    • 如果找到Node.js可执行文件,则返回“Node.js解释器”对话框,其中显示安装文件夹和检测到的Node.js解释器版本。

在Docker容器中配置远程Node.js解释器

您可以使用Docker快速引导Node.js应用程序,IntelliJ IDEA将通过自动创建新的Dockerfile来处理初始配置,使源代码保持最新并在容器中安装npm依赖项。配置在Docker容器中运行的Node.js环境作为Node.js远程解释器,允许您从IntelliJ IDEA运行,调试和配置Node.js应用程序。

使用准备

  1. 按照Docker中的描述 下载,安装和配置Docker

  2. 如“插件管理”中所述, 在“插件”页面上安装NodeJS,NodeJS远程解释器和Docker集成存储库插件 。

在Docker容器中配置远程Node.js解释器

  1. 在主菜单上,选择:运行|编辑配置。在打开的“编辑配置”对话框中,单击“添加新配置”工具栏按钮图标一般添加svg,然后在上下文菜单中选择“Node.js”。在打开的“运行/调试配置:Node.js”对话框中,单击“ 节点解释器”字段旁边的browseButton

  2. 在打开的“Node.js解释器”对话框中,其中包含所有当前配置的解释器的列表,单击工具栏上的图标一般添加svg。在打开的对话框中,选择上下文菜单中的“添加远程”。

  3. 在打开的“配置Node.js远程解释器”对话框中,选择Docker方法。

在“服务器”字段中,指定要使用的Docker配置。从列表中选择配置,或单击browseButton并在打开的“Docker”对话框中创建新配置。在“图像名称”字段中,指定要使用的基本Docker镜像。从下拉列表中选择以前下载的或自定义图像之一,或手动键入图像名称,例如,node:argonmhart/alpine-node。稍后启动运行配置时,Docker将在您的计算机上搜索指定的映像。如果搜索失败,将从注册表页面上指定的映像存储库下载映像。Node.js解释器路径字段显示指定映像中默认Node.js解释器的位置。单击“确定”后,IntelliJ IDEA将关闭“配置Node.js远程解释器”对话框 ,并将您带到“Node.js解释器”对话框,其中新的解释器配置将添加到列表中。单击“确定”返回运行配置。

配置映射

使用远程Node.js解释器调试应用程序时,调试器会告知IntelliJ IDEA当前处理的文件的名称以及要处理的行的编号。IntelliJ IDEA打开此文件的本地副本,并指示包含所提供号码的行。通过指定服务器上的文件和文件夹与其本地副本之间的对应关系来启用此行为。这种对应关系称为映射,它在调试配置中设置。

配置映射的操作步骤如下:

  1. 在主菜单上,选择:运行|编辑配置。在打开的“编辑配置”对话框中,单击“添加新配置”工具栏按钮图标一般添加svg,然后在上下文菜单中选择“Node.js”。

  2. 在打开的“运行/调试配置:Node.js”对话框中,从“节点解释器”下拉列表中选择所需的远程解释器。

  3. 单击“路径映射”字段旁边的browseButton

  4. 打开的 “编辑项目路径映射”对话框显示从部署配置或Vagrantfile检索到的路径映射。这些映射是只读的。
    • 要添加自定义映射,请分别在“本地路径”和“远程路径”字段中单击图标一般添加svg,并指定项目中的路径和远程运行时环境上的相应路径。手动键入路径,或单击打开并在打开的对话框中选择相关文件或文件夹。

    • 要删除自定义映射,请在列表中选择它,然后单击图标一般删除svg

XML重构:标签的操作
IntelliJ IDEA:运行和调试Node.js
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

IntelliJ IDEA的一般准则

什么是IntelliJ IDEA项目

使用IntelliJ IDEA的意图行为

IntelliJ IDEA使用运行/调试配置

特定于VCS的程序

IntelliJ IDEA语言和特定框架指南

IntelliJ IDEA的数据库和SQL功能

IntelliJ IDEA使用之JavaServer Faces(JSF)

IntelliJ IDEA:分析PHP应用程序的性能

IntelliJ IDEA:调试PHP应用程序

IntelliJ IDEA:适用于PHP的Google App Engine

IntelliJ IDEA更多内容

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }