node.js - 松露编译失败
问题描述
每当我尝试使用solidity编译任何solidity项目时,特别是像truffle compile这样的命令,它会给我一个错误PS我尝试了其他解决方案,比如重命名truffle.cmd或调用truffle.cmd而不是truffle,但没有任何效果,我使用了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,所以代码很简单,我没有太多空间犯错。我的参考是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"
}
}
推荐阅读
- algorithm - 我的对称加密算法安全吗?
- javascript - 重新选择时,Kendo Scheduler 不会触发更改事件
- javascript - 计算通过 JS 检查并显示在页面上的复选框总数
- arrays - 如何过滤聚合物中的重组数据(dom-repeat)
- java - 在python for Java中序列化复数列表
- python - 如何动态修饰类方法,同时不丢失方法绑定状态?
- apache-spark - 错误:未找到:值 from_avro (Databricks)
- python - 在 Django 中创建用户时如何将用户添加到 ManyToManyField?
- python - TensorFlow Keras 指南:自定义层 get_config 方法不更新层的配置?
- javascript - Javascript 对象属性仅在从另一个函数内部调用时返回未定义