繁体   English   中英

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

[英]How to import module based dependencies for firebase cloud functions?

我想在特定文件中组织我的 firebase 云函数,目前,我有这 3 个:

  • 索引.ts
  • 密码.ts
  • 网页抓取.ts

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

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

所以我像这样导入它:

 import * as CryptoJS from "crypto-js";

按照https://firebase.google.com/docs/functions/handle-dependencies#typescript中的建议


另一方面,当我尝试像这样将 puppeteer 导入 webscrape.ts 时:

 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");

这里有什么区别?


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

我不想将所有内容导入 index.ts,即使我触发了 function,它根本不使用此依赖项。

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

谢谢!

以下导入将从该 package 获取默认导出。

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的更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM