我一直在挖这个约一个小时,但无法弄清楚导致这个问题的原因。我正在使用webpack,浏览器同步,并与react-redux做出反应。这是控制台的错误:
Uncaught ReferenceError: _crypto is not defined
at eval (eval at <anonymous> (bundle.js:881), <anonymous>:5:11)
at Object.eval (eval at <anonymous> (bundle.js:881), <anonymous>:20:3)
at eval (eval at <anonymous> (bundle.js:881), <anonymous>:21:30)
at Object.<anonymous> (bundle.js:881)
at __webpack_require__ (bundle.js:20)
at Object.eval (eval at <anonymous> (bundle.js:875), <anonymous>:3:11)
at eval (eval at <anonymous> (bundle.js:875), <anonymous>:46:30)
at Object.<anonymous> (bundle.js:875)
at __webpack_require__ (bundle.js:20)
at Object.eval (eval at <anonymous> (bundle.js:833), <anonymous>:4:14)
答案 0 :(得分:1)
我也遇到过这个问题。我的解决方案是升级crypto-browserify依赖:
print(ggplot(decomp1,aes(x=V4,y=V1,fill=V5,label=paste0(round(V1,3)*100,"%")))+theme_pl()+geom_bar(stat = "identity",aes(width=0.5))+facet_grid(V3~.)+
scale_fill_manual(values = c(c("Non"="#1581A4", "Long"="#FFA600", "Ca"="#B50000")))+
scale_y_continuous(label=percent,limits = c(0,0.7))+
theme(legend.title=element_blank(),axis.title.x = element_blank(),axis.title.y = element_blank())+
geom_text(aes(y=V7-V1/2),col="white",size=3)+
geom_text(data=decomp1[,.(V1=sum(V1),V5="Non"),by=.(V4,V3)],aes(y=V1,vjust=-1,fontface="bold")))
编辑1 :由于我不太了解的原因,这只能暂时解决问题。一旦我重新启动webpack,它就再次停止工作。
编辑2 :这只发生在我的一个项目中,这是相当复杂的,因此很难准确确定两者之间的差异,但作为临时修复,你可以只需声明变量:
npm install crypto-browserify@3.11.0
它不漂亮,但希望这将是暂时的。
答案 1 :(得分:0)
这是一个超级版本的加密浏览器,rng.js已经消失了,因为至少一年前发布了至少3.9.8,有些东西需要过时的版本。
答案 2 :(得分:0)
我遇到了同样的问题,并找到了原因。
当您使用webpack 1.x时,node-libs-browser@7.0
与crypto-browserify@3.3.0
(可能更早)将同时安装。
因此,如果你直接require('crypto')
,webpack将使用@3.3.0
,rng.js
,而不是你自己安装的最新版本。
我尝试的解决方案只是npm install node-libs-browser --save
,npm会在webpack中更新它,并且会找到@ 3.11.0。