如何为 firebase 云功能导入基于模块的依赖项?
How to import module based dependencies for firebase cloud functions?
我想在特定文件中组织我的 firebase 云函数,
目前,我有这 3 个:
- index.ts
- crypto.ts
- webscrape.ts
在这些文件中,我有使用其他地方不需要的特定依赖项的函数。
比如在crypto.ts中我需要crypto-js包来加密一些用户数据并存入数据库
所以我是这样导入的:
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");
时有效
这里有什么区别?
我的目标是使每个函数和 file/module 的依赖性尽可能小,因为我认为这也会使每个函数容器的大小保持较小(这是真的吗?)
我不想将所有内容导入 index.ts ,即使我触发了一个根本不使用此依赖项的函数。
那么处理这些依赖关系的正确方法是什么?
谢谢!
以下导入将从该包中获取默认导出。
import puppeteer from "puppeteer-extra"
我在 Github 存储库中查找 default export 并找到了。
const defaultExport: PuppeteerExtra = (() => {
return new PuppeteerExtra(...requireVanillaPuppeteer())
})()
export default defaultExport
他们提到了 ES6 import 和 require 方法 here。
// javascript import
const puppeteer = require('puppeteer-extra')
// typescript/es6 module import
import puppeteer from 'puppeteer-extra'
您可以在 MDN 上阅读有关 import
的更多信息。
我想在特定文件中组织我的 firebase 云函数, 目前,我有这 3 个:
- index.ts
- crypto.ts
- webscrape.ts
在这些文件中,我有使用其他地方不需要的特定依赖项的函数。
比如在crypto.ts中我需要crypto-js包来加密一些用户数据并存入数据库
所以我是这样导入的:
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");
这里有什么区别?
我的目标是使每个函数和 file/module 的依赖性尽可能小,因为我认为这也会使每个函数容器的大小保持较小(这是真的吗?)
我不想将所有内容导入 index.ts ,即使我触发了一个根本不使用此依赖项的函数。
那么处理这些依赖关系的正确方法是什么?
谢谢!
以下导入将从该包中获取默认导出。
import puppeteer from "puppeteer-extra"
我在 Github 存储库中查找 default export 并找到了。
const defaultExport: PuppeteerExtra = (() => {
return new PuppeteerExtra(...requireVanillaPuppeteer())
})()
export default defaultExport
他们提到了 ES6 import 和 require 方法 here。
// javascript import
const puppeteer = require('puppeteer-extra')
// typescript/es6 module import
import puppeteer from 'puppeteer-extra'
您可以在 MDN 上阅读有关 import
的更多信息。