_crypto未定义

时间:2016-12-15 03:48:57

标签: webpack browser-sync cryptojs

我一直在挖这个约一个小时,但无法弄清楚导致这个问题的原因。我正在使用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)

3 个答案:

答案 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.0crypto-browserify@3.3.0(可能更早)将同时安装。

因此,如果你直接require('crypto'),webpack将使用@3.3.0rng.js,而不是你自己安装的最新版本。

image

我尝试的解决方案只是npm install node-libs-browser --save,npm会在webpack中更新它,并且会找到@ 3.11.0。