Javascript 实体编译器
我试图为新合同编写编译器。它位于compile.js中,包含:Javascript 实体编译器,javascript,node.js,blockchain,Javascript,Node.js,Blockchain,我试图为新合同编写编译器。它位于compile.js中,包含: pragma solidity ^0.4.7; const path = require('path'); const fs = require('fs'); const solc = require('solc'); const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol'); const source = fs.readFileSync(inboxP
pragma solidity ^0.4.7;
const path = require('path');
const fs = require('fs');
const solc = require('solc');
const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8');
console.log(solc.compile(source, 1));
文件compile.js位于目录收件箱中
文件Inbox.sol位于Inbox/contracts/Inbox.sol中
在控制台中调用“node compile.js”我得到:
SyntaxError: Unexpected identifier
at createScript (vm.js:80:10)
at Object.runInThisContext (vm.js:139:10)
at Module._compile (module.js:616:28)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Function.Module.runMain (module.js:693:10)
at startup (bootstrap_node.js:191:16)
at bootstrap_node.js:612:3
据我所知,它找不到源代码?不,它说有一些意想不到的事情(语法错误),可能来自于你的源代码合同,可能里面有一个错误,这很令人惊讶。我认为它找不到这个contract Inbox.sol,因为当我测试编译器并试图将错误的路径放到contract时,控制台日志信息是相同的。在这种情况下,源代码契约真的有问题吗?如果它们不是文件,
fs.readFileSync()
它应该已经坏了,但是我建议您查看您的源代码,看看这是否是您的契约,然后直接用编译器检查它删除pragma行,您的编译文件是JS文件,当然不是solidity.OMG。。非常感谢,现在一切正常!