松露编译失败

Truffle compile fails

每当我尝试使用 solidity 编译任何 solidity 项目时,特别是像 truffle compile 这样的命令,它都会给我一个错误 P.S。我尝试了其他解决方案,例如重命名 truffle.cmd 或调用 truffle.cmd 而不是松露,但没有任何效果,我使用了 windows cmd 或 Git Bash 相同的错误。

> Omar@LAPTOP-F8C4IRVO MINGW64 /e/College/Semester 7/Grad Project/eth-smart-contracts-master/eth-smart-contracts-master/01-HelloWorld/finish
$ truffle compile

Compiling your contracts...
===========================
C:\Users\omaro\AppData\Roaming\npm\node_modules\truffle\node_modules\solc\soljson.js:1
(function (exports, require, module, __filename, __dirname) { var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=typeof window==="object";var ENVIRONMENT_IS_WORKER=typeof importScripts==="function";var ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=function print(x){process["stdout"].write(x+"\n")};if(!Module["printErr"])Module["printErr"]=function printErr(x){process["stderr"].write(x+"\n")};var nodeFS=require("fs");var nodePath=require("path");Module["read"]=function read(filename,binary){filename=nodePath["normalize"](filename);var ret=nodeFS["

SyntaxError: Invalid regular expression: /C:\Users\omaro\AppData\Roaming\npm\node_modules\/: \ at end of pattern
    at new RegExp (<anonymous>)
    at Object.<anonymous> (C:\Users\omaro\AppData\Roaming\npm\node_modules\truffle\build\webpack:\packages\truffle-core\cli.js:93:1)
    at cb (util.js:353:39)
    at callbackifyOnRejected (util.js:337:10)
    at process._tickCallback (internal/process/next_tick.js:63:19)

我还在学习solidity和truffle,所以代码很简单,我没有太多space错误。 我的参考是 https://medium.com/etherereum-salon/hello-ethereum-solan-contract-4643118a6119

我的合同也有同样的错误。检查你的 solc 编译器版本 truffle version 并检查您合约的可靠性版本。 在我的例子中,编译器是 Solidity v0.5.0 (solc-js),但合约有 pragma solidity ^0.4.11; 我只是将其更改为 pragma solidity ^0.5.0 并根据其版本要求重新格式化代码,之后合约编译正常。解决问题的另一种方法是通过添加编辑松露配置:

compilers: {
        solc: {
          version: "^0.4.23" // A version or constraint - Ex. "^0.5.0"
    }
}