在Cloud函数中,从包.json中修剪依赖项是否可以有效减少冷启动时间? 如果答案是肯定的,那么如何将依赖项移至devDependencies?
我正在将Cloud函数用于Firebase,并且它在不带node_modules的functions文件夹下上传文件。
云功能容器中的node_modules目录由云功能自动创建。 因此,很难调查上述对策是否有效。
答案 0 :(得分:3)
从package.json
中删除依赖关系可能对部署时间影响很小,但通常不会对冷启动产生影响。冷启动仅受您在代码中加载的程序包的影响,即引导功能所需的require()
语句的数量。
如果只用于一个功能,则最好在功能体内使用软件包。例如:
const functions = require('firebase-functions');
exports.myFunction = functions.https.onRequest((req, res) => {
const lib1 = require('lib1');
const lib2 = require('lib2');
res.send(lib1.callMethod(lib2.otherMethod()));
});
如果您在Firebase CLI部署的同一文件中具有其他功能,则它们将不会加载lib1
和lib2
,因为它们仅在内部功能主体。