如何为firebase云函数导入基于模块的依赖关系?



我想在特定的文件中组织我的firebase云功能,目前,我有这些3:

  • index.ts
  • crypto.ts
  • webscrape.ts

在这些文件中,我有一些函数使用了其他地方不需要的特定依赖项。

例如,在加密中。我需要crypto-js包来加密一些用户数据并将其存储到数据库中。

我像这样导入它:

import * as CryptoJS from "crypto-js";

参考https://firebase.google.com/docs/functions/handle-dependencies#typescript


另一方面,当我尝试将puppeteer导入webscraper时。是这样的:

import * as puppeteer from"puppeteer-extra";

然后调用puppeteer.launch();给我一个错误:

Property 'launch' does not exist on type 'typeof import("c:/Users/username/Desktop/project/firebasee/functions/node_modules/puppeteer-extra/dist/index")'

,它只工作当我做const puppeteer = require("puppeteer-extra");

这里有什么不同?


我的目标是保持每个函数和文件/模块的依赖关系尽可能小,因为我认为这也将保持每个函数容器的大小小(这是真的吗?)

我不想把所有东西都导入到index中。甚至当我触发一个函数时,它根本不使用这个依赖项。

那么处理这些依赖的正确方法是什么呢?

谢谢!

下面的导入将从该包获取默认导出。

import puppeteer from "puppeteer-extra"

我在Github存储库中查找默认导出,发现。

const defaultExport: PuppeteerExtra = (() => {
return new PuppeteerExtra(...requireVanillaPuppeteer())
})()
export default defaultExport

他们提到了ES6的import和require方法。

// javascript import
const puppeteer = require('puppeteer-extra')
// typescript/es6 module import
import puppeteer from 'puppeteer-extra'

您可以在MDN上阅读更多关于import的信息。

相关内容

  • 没有找到相关文章

最新更新