【发布时间】:2022-04-12 03:09:39
【问题描述】:
我有一个包 admin-sdk 用于多个项目,依赖于 firebase-admin 并导出函数 export function storage(): admin.storage.Storage 以获取对云存储的引用。
这个包在一个 NestJS 应用程序中使用并且工作正常,但是当我使用 Jest 运行测试时,我得到模块未找到错误:
● Test suite failed to run
Cannot find module 'firebase-admin/storage' from 'node_modules/admin-sdk/dist/firebase/storage.js'
Require stack:
node_modules/admin-sdk/dist/firebase/storage.js
node_modules/admin-sdk/dist/firebase/index.js
node_modules/admin-sdk/dist/index.js
src/services/provocation/provocation.service.ts
src/services/provocation/provocation.service.spec.ts
at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:306:11)
at Object.<anonymous> (node_modules/admin-sdk/dist/firebase/storage.js:4:19)
node_modules/admin-sdk/storage.ts
import {Bucket} from "@google-cloud/storage";
import {getStorage, Storage} from "firebase-admin/storage";
let _storage: Storage;
const _buckets: Record<string, Bucket> = {};
export function storage(): Storage {
if (!_storage) {
_storage = getStorage(); //admin.storage();
}
return _storage;
}
export function bucket(name?: string): Bucket {
let id = name || "";
if (!_buckets.hasOwnProperty(id)) {
_buckets[id] = storage().bucket(name);
}
return _buckets[id];
}
两个库都依赖于同一版本的 firebase-admin,即 ^10.0.2。
那么为什么会出现这个错误,我该如何解决呢?
【问题讨论】:
标签: jestjs google-cloud-storage firebase-admin