Angular:从Angularfirefirestore服务中获取路由的Scully插件失败,报错Error[ERR_REQUIRE_ESM]:require()ofESnotsupported。
创始人
2024-11-01 20:00:24
0

问题产生的原因是Scully插件不支持使用ESM(ECMAScript Modules)模块的require()函数。因此,需要修改插件中使用的代码,使用CommonJS模块来代替ESM模块。

以下是一个可能的解决方法,假设我们的Scully插件称为firestore.routes.ts:

  1. 安装@firebase/app、@firebase/firestore和@angular/fire依赖:
npm install @firebase/app @firebase/firestore @angular/fire --save
  1. 在插件中导入所需的模块,并替换使用ESM模块:
// 导入所有所需的模块
const firebase = require('@firebase/app'); // CommonJS模块
require('@firebase/firestore'); // 更改全局require,以在应用程序中启用Firestore
import { AngularFirestore } from '@angular/fire/firestore';

// 核心逻辑
export async function fetchRoutes(): Promise {
  // 初始化Firestore
  const firebaseApp = firebase.initializeApp({
    // ...配置数据
  });
  const db = firebaseApp.firestore();

  // 从Firestore中获取路由
  const routes: string[] = [];
  await db.collection('routes').get().then((querySnapshot) => {
    querySnapshot.forEach((doc) => {
      routes.push(doc.data().route);
    });
  });

  return routes;
}
  1. 在Scully的config文件中,将插件名称更改为firestore.routes.ts,并在plugins数组中注册:
// Scully.config.ts

export const config = {
  // ...配置数据
  routes: {
    // ...
  },
  plugins: [
    // ...其他插件
    require('./firestore.routes').fetchRoutes
  ]
};

注意:在使用上述代码时,需要根据所需的实际场景进行适当的修改和调整。

相关内容

热门资讯

必备透视!线上德州的辅助器是什... 必备透视!线上德州的辅助器是什么,epoker透视底牌(透视)原来一直总是有辅助攻略(哔哩哔哩)1、...
分享透视!红龙poker辅助,... 分享透视!红龙poker辅助,拱趴大菠萝挂(透视)一直是真的有辅助软件(哔哩哔哩)1、金币登录送、破...
必备透视!pokemmo内置修... 必备透视!pokemmo内置修改器,约局吧能不能开挂(透视)原来存在有辅助app(哔哩哔哩)1、首先...
关于透视!wepoker安装教... 关于透视!wepoker安装教程,哈糖大菠萝能开挂吗(透视)果然一直都是有辅助工具(哔哩哔哩)1、上...
解谜透视!poker mast... 解谜透视!poker master辅助,德州圈脚本(透视)竟然存在有辅助插件(哔哩哔哩)1、每一步都...
有挂透视!sohoo poke... 有挂透视!sohoo poker辅助器,德州透视是真的吗(透视)原来是真的有辅助插件(哔哩哔哩)1、...
推荐透视!佛手在线是不是有挂,... 推荐透视!佛手在线是不是有挂,poker world辅助器(透视)一直真的有辅助app(哔哩哔哩)1...
了解透视!拱趴大菠萝机器人,红... 了解透视!拱趴大菠萝机器人,红龙poker辅助(透视)果然真的有辅助攻略(哔哩哔哩)1.拱趴大菠萝机...
科普透视!pokemmo脚本辅... 科普透视!pokemmo脚本辅助器下载,sohoopoker辅助(透视)原来存在有辅助脚本(哔哩哔哩...
曝光透视!约局吧德州透视,德州... 曝光透视!约局吧德州透视,德州私人局脚本(透视)好像是真的有辅助神器(哔哩哔哩)1、进入游戏-大厅左...