簡體   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