簡體   English   中英

NodeJS eth-lightwallet不允許子模塊之間使用不同的bitcore-lib版本

[英]NodeJS eth-lightwallet doesn't allow different bitcore-lib versions among submodules

模塊eth-lightwallet及其依賴項與bitcore-lib版本保護有關。 我注意到其中一些版本為0.15,其他版本為0.14。 您對此問題有解決方案嗎? 我收到的錯誤如下所示。

(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["readFileSync"]

Error: More than one instance of bitcore-lib found. Please make sure to require bitcore-lib and check that submodules do not also include their own bitcore-lib dependency.
    at Object.bitcore.versionGuard (\GitHub\X\node_modules\eth-lightwallet\node_modules\bitcore-mnemonic\node_modules\bitcore-lib\index.js:12:11)
    at Object.<anonymous> (\GitHub\X\node_modules\eth-lightwallet\node_modules\bitcore-mnemonic\node_modules\bitcore-lib\index.js:15:9)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (\GitHub\X\node_modules\eth-lightwallet\node_modules\bitcore-mnemonic\lib\mnemonic.js:3:15)

Process finished with exit code 7`

完整的解決方案

在主文件中,將_bitcore設置為global以在每次檢索其值時返回undefined。 _bitcore只能用於bitcore-lib中的保護版本。

Object.defineProperty(global, '_bitcore', {
get(){
    return undefined
},
set(){}
})

這里提供的解決方案對我有用:bitpay / bitcore#1454

好吧,這遠不是解決此問題的正確方法,但是您可以通過編輯文件來擺脫此錯誤

〜/ .nvm / versions / node / v4.8.3 / lib / node_modules / bitcore / node_modules / insight-api / node_modules / bitcore-lib / index.js

第7行:bitcore.versionGuard = function(version){更改為:bitcore.versionGuard = function(version){return;

我做到了,到目前為止沒有問題。

此錯誤導致版本沖突。 我通過更改版本來解決此錯誤

bitcore-libbitcore-mnemonic/bitcore-lib^0.15.0 bitcore-mnemonic/bitcore-lib

(哪個bitcore-mnemonic/bitcore-lib^0.16.0 )。

然后再次npm install

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM