尝试使用 npm 全局安装 solcjs 时如何解决 "Cannot find module './common/helpers'" 错误?

How to resolve "Cannot find module './common/helpers'" error when trying to install solcjs globally with npm?

我 运行在尝试通过 npm 在本地安装 Solidity 编译器时遇到了一个问题。在 运行ning npm i -g solc 并通过 运行ning 任何命令(例如 solcjs --help 检查安装后,我收到以下错误:

internal/modules/cjs/loader.js:905
  throw err;
  ^

Error: Cannot find module './common/helpers'
Require stack:
- /usr/local/lib/node_modules/solc/linker.js
- /usr/local/lib/node_modules/solc/translate.js
- /usr/local/lib/node_modules/solc/wrapper.js
- /usr/local/lib/node_modules/solc/index.js
- /usr/local/lib/node_modules/solc/solc.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15)
    at Function.Module._load (internal/modules/cjs/loader.js:746:27)
    at Module.require (internal/modules/cjs/loader.js:974:19)
    at require (internal/modules/cjs/helpers.js:101:18)
    at Object.<anonymous> (/usr/local/lib/node_modules/solc/linker.js:7:19)
    at Module._compile (internal/modules/cjs/loader.js:1085:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10)
    at Module.load (internal/modules/cjs/loader.js:950:32)
    at Function.Module._load (internal/modules/cjs/loader.js:790:12)
    at Module.require (internal/modules/cjs/loader.js:974:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/usr/local/lib/node_modules/solc/linker.js',
    '/usr/local/lib/node_modules/solc/translate.js',
    '/usr/local/lib/node_modules/solc/wrapper.js',
    '/usr/local/lib/node_modules/solc/index.js',
    '/usr/local/lib/node_modules/solc/solc.js'
  ]
}

我尝试了各种方法,包括检查我的 NODE_PATH、从 solc-js GitHub 手动安装,以及尝试 运行 使用 npx 命令。但是,其中 none 有助于解决上述错误。对于其他上下文,我 运行ning 在 macOS Monterey 上。非常感谢对此的任何帮助。

我觉得是版本问题,我只好卸载当前版本

  • npm uninstall solc
  • npm install --save solc@0.4.25

据此:https://github.com/ethereum/solc-js/issues/624,这是 0.8.14 中引入的错误。

它将在 0.8.15 中修复,同时您可以降级到 0.8.13 以避免此问题。

为我的 2 个朋友 (MAC M1 和 W10) 和我工作

  • npm uninstall solc —global
  • npm install —save solc@0.8.13 —global