我有一个利用openpgpjs库作为依赖项的项目,我将WebPacking整个应用程序部署到Azure Functions上 resolve cold start issues。
当以非Webpacked格式在本地运行时,Azure函数可以正常工作,但是一旦我将WebPack文件包起来,我就会在运行时不断收到错误:
" mscorlib:错误:无法找到模块'加密'"
触发此错误的代码似乎来自Openpgpjs的util.js.
整个文件在这里: https://github.com/openpgpjs/openpgpjs/blob/master/src/util.js
违规代码片段如下:
/**
* Get native Node.js crypto api. The default configuration is to use
* the api when available. But it can also be deactivated with config.use_native
* @return {Object} The crypto module or 'undefined'
*/
getNodeCrypto: function() {
if (!this.detectNode() || !config.use_native) {
return;
}
return require('crypto');
},
对于我的生活,我无法弄清楚为什么会发生这种情况,我无法让错误消失。
I'm using my own script pack-git to do the Webpacking等等。但是,如果我使用Azure's function pack,我会得到相同的行为。 (当我开始为master-pack编写代码时,它并不存在。
因此我认为这与图书馆使用WebPack的方式有关,但我不知道从哪里开始计算/排除故障。
有没有人对出了什么问题有任何想法,或者至少有想法可以帮助我进一步解决问题?
-------------------编辑---------------------
我创建了一个简单的项目,当使用Webpack运行Funcpack时会重现该问题。
复制步骤:
全局安装funcpack和azure-functions-cli:
npm install -g funcpack azure-functions-cli
克隆以下回购:
在您克隆的文件夹中运行npm install:
npm install
从克隆存储库的基础中使用azure-functions-cli启动Azure功能。
func run aaaa
导航到以下网址并验证您是否返回空白页面,其中显示了其正常工作:
关闭窗口停止azure-functions-cli。
在目录的基础上运行funcpack:
funcpack
重复步骤4-5
注意:这次您收到有关未找到模块加密的错误。