(无效asm.js:stdlib的无效成员),同时尝试编译solidity 0.4.17



(无效asm.js:stdlib的无效成员(,同时尝试编译solidity 0.4.17

(无效asm.js:stdlib的无效成员(,同时尝试编译solidity 0.4.17

(无效asm.js:stdlib的无效成员(,同时尝试编译solidity 0.4.17

const path = require('path');
const fs = require('fs-extra');
const solc = require('solc');
const buildPath = path.resolve(__dirname, 'build');
fs.removeSync(buildPath);

const contractPath = path.resolve(__dirname, 'contracts', 'Campaign.sol');
const source = fs.readFileSync(contractPath, 'utf8');
const output = solc.compile(source, 1).contracts;

fs.ensureDirSync(buildPath);

for (let contract in output) {
fs.outputJsonSync(
path.resolve(buildPath, contract.replace(':', '') + '.json'),
output[contract]
);
}

也有同样的问题,为我解决的是更改solidity编译器的版本。我随意挑选,然后工作。我在控制台上输入:

npm install solc@0.4.26

您可能遇到了影响0.4.25二进制文件的相同问题:soljson 0.4.25的asm.js构建在node.js 14+#537上失败。

不幸的是,我不知道原因是什么,但如果是同样的问题,那么只需下载wasm二进制文件就可以解决:emscripten-wasm32/solc-emscripten-wasm32-v0.4.17+commit.bdeb9e52.js

wasm二进制文件也应该比asm.js更快,所以我建议始终使用它们。

问题是输出中没有约定结果(solc编译器的常量(。

最新更新