简体   繁体   English

无法从“index.cjs.js”中找到模块“firebase-admin”

[英]Cannot find module 'firebase-admin' from 'index.cjs.js'

I was using @firebase/testing on Jest, but since it's deprecated and instructed to use new one , I decided to move to @firebase/rules-unit-testing .我在 Jest 上使用@firebase/testing ,但由于它已被弃用并指示使用 new one ,我决定转向@firebase/rules-unit-testing

Here is the code where I just switched them.这是我刚刚切换它们的代码。

import { initializeAdminApp } from "@firebase/rules-unit-testing";
import "babel-polyfill";

it("is ok", async () => {
  const admin = initializeAdminApp({ projectId: "my-project" });

  try {
    const doc = admin.firestore().collection("items").doc("item-1");
    await doc.set({ name: "Item 1" });
    const ss = await doc.get();
    expect(ss.data()?.name).toBe("Item 1");
  } finally {
    await admin.delete();
  }
});

When I run this test with emu, it results "Cannot find module 'firebase-admin' from 'index.cjs.js'" error.当我用emu运行这个测试时,它会导致“无法从'index.cjs.js'中找到模块'firebase-admin'”错误。

Cannot find module 'firebase-admin' from 'index.cjs.js'                      
                                                                                              
      3 |                                       
      4 | it("is ok", async () => {                                                              
    > 5 |   const admin = initializeAdminApp({ projectId: "my-project" });                           
        |                 ^

It passes if it is the old @firebase/testing .如果它是旧的@firebase/testing它就会通过。

What did I miss?我错过了什么?

  • Node.js v14.8.0 Node.js v14.8.0
  • Jest 25.5.4开玩笑 25.5.4
  • firebase 7.21.1火力基地 7.21.1
  • firebase-tools 8.11.2 firebase 工具 8.11.2
  • @firebase/testing 0.20.11 @firebase/测试 0.20.11
  • @firebase/rules-unit-testing 1.0.4 @firebase/rules-unit-testing 1.0.4

The firebase-admin is an npm package. firebase-admin是一个 npm 包。 Just installed it and all worked.刚刚安装它并且一切正常。

$ npm install -D firebase-admin

I started to use firebase-admin@^10.0.1 and I had this error when running jest tests.我开始使用firebase-admin@^10.0.1并且在运行jest测试时出现此错误。 It couldn't map "firebase-admin/app" to "firebase-admin/lib/app" as expected.它无法按预期将“firebase-admin/app”映射到“firebase-admin/lib/app”。 So I have mapped this manually on jest.config.ts :所以我在jest.config.ts 上手动映射了这个:

import { pathsToModuleNameMapper } from 'ts-jest/utils';
import { compilerOptions } from './tsconfig.json';

...
export default {
 ...
 moduleNameMapper: pathsToModuleNameMapper(
    {
      ...compilerOptions.paths,
      'firebase-admin/*': ['node_modules/firebase-admin/lib/*'],
    },
    {
      prefix: '<rootDir>',
    },
  ),
...
}

That worked for me.这对我有用。

And just to note, my tsconfig.json is like this:请注意,我的tsconfig.json是这样的:

{
  "compilerOptions": {
    ...
    "baseUrl": ".",
    "paths": {
      "modules/*": [
        "src/modules/*"
      ],
      "shared/*": [
        "src/shared/*"
      ],
    }
  }
}

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

相关问题 找不到模块“firebase-admin” - Cannot find module 'firebase-admin' Firebase功能部署错误找不到模块firebase-admin - Firebase function deploy error cannot find module firebase-admin FIrebase 部署错误:找不到模块“firebase-admin” - FIrebase deploy error: Cannot find module 'firebase-admin' Google App Engine - 节点:找不到模块&#39;firebase-admin&#39; - Google App Engine - Node: Cannot find module 'firebase-admin' 您是要导入 firebase/app/dist/index.cjs.js 吗? - Did you mean to import firebase/app/dist/index.cjs.js? 尝试部署Firebase功能时找不到模块“firebase-admin” - Cannot find module 'firebase-admin' when trying to deploy Firebase functions 解析触发器时出错:找不到模块“firebase-admin/lib/database” - Error parsing triggers: Cannot find module 'firebase-admin/lib/database' 谷歌云平台:“找不到模块firebase-admin” - google cloud platform: “Can't find module firebase-admin” 如何使用firebase-admin模块使用Node.js从Firebase数据库返回有序数据? - How can I return ordered data from Firebase database with Node.js using the firebase-admin module? Firebase 在运行 firebase 服务时找不到“firebase-admin”模块 - Firebase cannot found the 'firebase-admin' module when run firebase serve
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM