[英]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.