由于Gun.js参考错误OSSL_WEBCRYPTO_OR_TEXT_ENCODING_NOT_INSTALLED is not defined
,我无法通过ZEIT Now部署Next.js应用程序。在本地计算机上以开发模式运行时没有错误。
在部署日志中出现错误之前,消息是“默认情况下可能不包括node-webcrypto-ossl和text-encoding,请将其添加到package.json中!”这样做不能解决错误,也不能按照https://github.com/amark/gun#additional-cryptography-libraries添加@trust/webcrypto
(我正在使用SEA进行用户身份验证)。
package.json
依赖项:
{
"dependencies": {
"@trust/webcrypto": "^0.9.2",
"directory-named-webpack-plugin": "^4.0.1",
"gun": "^0.2019.712",
"mapbox-gl": "^1.1.1",
"next": "^9.0.1",
"next-offline": "^4.0.2",
"node-webcrypto-ossl": "^1.0.48",
"react": "^16.8.6",
"react-dom": "^16.8.6",
"styled-components": "^4.3.2",
"text-encoding": "^0.7.0"
}
}
请帮助! :-)
答案 0 :(得分:0)
@ randy-morantes您的package.json
看起来正确。
您可以尝试分享:
答案 1 :(得分:0)
我是peculiar \ webcrypto和node-webcrypto-ossl软件包的作者。根据枪支来源:
https://github.com/amark/gun/blob/e0d85f02b567a43d39cda0fe71522b84ff52a08b/sea/shim.js#L25
看来他们还没有切换到特殊\ webcrypto。尝试将node-webcrypto-ossl
添加到package.json中。
答案 2 :(得分:0)
Next.js的最新版本("next": "9.0.4"
,"next-offline": "4.0.5"
)解决了该问题!
答案 3 :(得分:0)
昨晚我遇到了这个问题,最终通过一些猴子补丁和破解成功地解决了这个问题。诀窍是将 gun 和 sea 从Webpack中移出并做出反应,然后使用 window.gun 对其进行访问。另外,当枪不在webpack中时,枪的运行速度似乎更快。
这是我在Gatsbyjs项目中所做的事情:
阅读此文档:https://www.gatsbyjs.org/docs/custom-html/
然后在您的gatsby中反应组件,只需调用window.gun和window.user并享受黑客入侵:
如果(窗户)开枪...
现在运行 gatsby build ,您可以看到它的构建没有错误。