繁体   English   中英

MODULE_NOT_FOUND 坚固

[英]MODULE_NOT_FOUND with solidity

我有一个如下的文件夹结构

在此处输入图像描述

这是我的 compile.ts

   import { resolve } from 'path';
import { readFileSync } from 'fs';
import { CompileFailedError, compileSourceString } from 'solc-typed-ast';

const inboxPath = resolve('src/contracts', 'Inbox.sol');
const source = readFileSync(inboxPath, 'utf8');
const compile = async () => {
  try {
    return await compileSourceString(inboxPath, source, 'auto');
  } catch (e) {
    if (e instanceof CompileFailedError) {
      console.error('Compile errors encountered:');
 
      for (const failure of e.failures) {
        console.error(`Solidity compiler ${failure.compilerVersion}:`);
 
        for (const error of failure.errors) {
          console.error(error);
        }
      }
    } else {
      console.error(e as Error);
    }
  }
};

compile().then(result => {
  console.log(result?.data.contracts[`${inboxPath}:Inbox`]);
});

下面是我的 package.json

{
  "name": "inbox",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "./node_modules/.bin/tsc",
    "runwatch": "./node_modules/.bin/tsc -w",
    "compile": "node dist/compile.js"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@typechain/truffle-v5": "^8.0.0",
    "truffle": "^5.5.14",
    "ts-node": "^10.7.0",
    "typechain": "^8.0.0",
    "typescript": "^4.6.4",
    "@truffle/hdwallet-provider": "^2.0.8",
    "@types/mocha": "^9.1.1",
    "ganache": "^7.1.0",
    "ganache-cli": "^6.12.2",
    "mocha": "^10.0.0",
    "solc": "^0.8.14",
    "web3": "^1.7.3"
  }
}

下面是我的 tsconfig.json

{
    "compilerOptions": {
        "outDir": "./dist/",
        "mapRoot": "./dist/",
        "sourceMap": true,
        "lib": ["es5"],
        "module": "CommonJS",
        "target": "ES2018",
        "strict": true,
        "esModuleInterop": true,
        "types": ["@types/node", "@types/mocha"],
        "typeRoots": ["./node_modules/@types", "./types"]
    },
    "include": ["**/*.ts"],
    "exclude": ["node_modules", "build", "cache", "artifacts"],
    "lib": [
        "es2017",
        "dom"
    ]
  }

当我运行该 compile.js 文件时,出现以下错误

> inbox@1.0.0 compile F:\Blockchain Projects\ethereum-solidity\section_2\inbox
> node dist/compile.js

Error: Cannot find module './common/helpers'
Require stack:
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc\linker.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc\translate.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc\wrapper.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc\index.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc-typed-ast\dist\compile\kinds\compiler.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc-typed-ast\dist\compile\kinds\index.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc-typed-ast\dist\compile\index.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\node_modules\solc-typed-ast\dist\index.js
- F:\Blockchain Projects\ethereum-solidity\section_2\inbox\dist\compile.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:93:18)
    at Object.<anonymous> (F:\Blockchain Projects\ethereum-solidity\section_2\inbox\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: [
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc\\linker.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc\\translate.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc\\wrapper.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc\\index.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc-typed-ast\\dist\\compile\\kinds\\compiler.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc-typed-ast\\dist\\compile\\kinds\\index.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc-typed-ast\\dist\\compile\\index.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\node_modules\\solc-typed-ast\\dist\\index.js',
    'F:\\Blockchain Projects\\ethereum-solidity\\section_2\\inbox\\dist\\compile.js'
  ]
}
undefined

如何解决该错误?

诚实的回答。 只需使用像 Hardhat、truffle、brownie 这样的框架,这样你就不需要处理编译和其他无聊的事情。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM