Remixd:访问您的本地文件系统

npm 版本

要让 Remix IDE(Web 应用程序)可以访问计算机上的文件夹,您需要使用 Remixd - 插件和 remixd - cli/npm 模块。

Remixd 插件可以从插件管理器或文件资源管理器中激活-请参见下面的图像。connect to localhost将激活 Remixd 插件。

一旦您点击connect to localhost 或从插件管理器激活Remixd,一个模态框将出现:

Remixd插件是一个websocket插件,除了这个模态对话框外,它没有其他UI界面,因此您在图标面板中看不到Remixd图标。

在连接之前,您需要安装remixd NPM模块 并运行remixd命令。

remixd的代码在这里

remixd安装

remixd是一个NPM模块,可以使用以下命令进行全局安装:npm install -g @remix-project/remixd

或者删除-g标志,在您选择的目录中安装它:npm install @remix-project/remixd

**注意:**当安装remixd NPM模块时,它还会安装Slithersolc-select并将solc设置为最新版本,即目前的0.8.15。

ALSO NOTE: Python3.6+ (pip3) needs to already be installed on the System. (This packaging of Slither with the remixd module is supported since Remixd v0.6.3). In case of any discrepancy, Slither can also be installed along with other dependencies using command remixd -i slither

找到您的remixd版本

命令:remixd -vremixd --version 将返回您的版本号。

如果此命令不起作用,则说明您使用的是过时的版本!

更新到最新版remixd

由于remixd创建了从浏览器到本地文件系统的桥梁,因此使用最新的版本非常重要。

如果用户安装在非常旧的NPM版本上或者不知道自己安装来源的用户,请运行以下两个步骤:

  1. 卸载旧版:npm uninstall -g remixd

  2. 安装新版:npm install -g @remix-project/remixd

对于大多数知道自己已经安装@remix-project/remixd 版本 的用户,只需运行:

npm install -g @remix-project/remixd

remixd命令

没有选项的 remixd 命令将使用终端当前目录作为共享目录,共享 Remix 域名将是 https://remix.ethereum.orghttps://remix-alpha.ethereum.orghttps://remix-beta.ethereum.org

remixd 命令如下:
remixd

如果您正在从本地主机使用 Remix 或者没有在工作目录中运行该命令,则需要使用带有标志的命令。

remixd 选项

Usage: remixd [options]

Establish a two-way websocket connection between the local computer and Remix IDE for a folder

Options:
  -v, --version               output the version number
  -u, --remix-ide  <url>      URL of remix instance allowed to connect
  -s, --shared-folder <path>  Folder to share with Remix IDE (Default: CWD)
  -i, --install <name>        Module name to install locally (Supported: ["slither"])
  -r, --read-only             Treat shared folder as read-only (experimental)
  -h, --help                  output usage information

Example:

    remixd -s ./shared_project -u http://localhost:8080

注意: remixd -i slither 可以用来安装Slither及其依赖项

在remixd命令中HTTP与HTTPS的区别

如果您的浏览器输入的是https://remix.ethereum.org(安全http)上,则在命令中使用https:
remixd -s <共享文件夹的绝对路径> --remix-ide https://remix.ethereum.org

如果您在浏览器中使用http,则在remixd命令中使用http。

读/写权限和只读模式

该文件夹是通过Remix IDE和remixd之间的websocket连接进行共享的。

请确保执行remixd的用户对该文件夹具有读/写权限。

另外,还有一个选项可以以只读模式运行remixd,请使用--read-only标志。

端口使用

remixd 通过与不同端口上的 Remix IDE 建立 WebSocket 连接来实现其功能。 端口根据特定目的进行定义。 端口使用详细信息如下:

  • 65520:用于 remixd WebSocket 监听器,以与 Remix IDE 共享本地文件系统。 共享文件夹将在名为 localhost 的 Remix IDE 文件资源管理器工作区中加载。

  • 65522:用于 hardhat WebSocket 监听器,以启用 Hardhat 编译,并使用 Remix IDE Solidity Compiler 插件(如果共享文件夹是 Hardhat 项目)。

  • 65523:用于 slither WebSocket 监听器,以启用 Slither 分析,并使用 Remix IDE Solidity 静态分析插件。

  • 65524:用于 truffle WebSocket 监听器,以启用 Truffle 编译,并使用 Remix IDE Solidity Compiler 插件(如果共享文件夹是 Truffle 项目)。

**注意:**请确保您的系统足够安全,并且这些端口未打开或转发。

警告!

  • remixd 为任何能够访问本地主机上 TCP 端口 65520 的应用程序提供了给定文件夹的完全读写访问权限。

  • 为了最小化风险,Remixd 只能在您的文件系统和 Remix IDE URLS 之间进行桥接 - 包括:

  https://remix.ethereum.org
  https://remix-alpha.ethereum.org
  https://remix-beta.ethereum.org
  package://a7df6d3c223593f3550b35e90d7b0b1f.mod
  package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod
  https://ipfsgw.komputing.org

(上面列表中的 package:// urls 是为remix桌面版提供的)

在模态框上点击连接

在Remixd模态框上点击“连接”按钮(见上图),将尝试启动一个会话,使您的浏览器可以访问计算机文件系统中指定的文件夹。

如果您没有在后台运行remixd - 会打开另一个模态框,并显示以下内容:

Cannot connect to the remixd daemon. 
Please make sure you have the remixd running in the background.

假设您没有看到第二个模态框,则表示与remixd守护程序的连接成功。共享文件夹将出现在localhost下的文件资源管理器工作区中。

创建&删除文件&或文件

localhost下单击新建文件夹新建文件图标将在共享文件夹中创建一个新的文件或文件夹。同样,如果您右键单击一个文件或文件夹,您可以重命名或删除该文件。

关闭一个remixd会话

在运行 remixd 的终端中,键入 ctrl-c 将关闭会话。然后 Remix IDE 会弹出一个模态框,显示 remixd 已停止运行。