【问题标题】:Adonisjs 5.0 TypeError: this.container.singleton is not a functionAdonisjs 5.0 TypeError:this.container.singleton 不是函数
【发布时间】:2021-08-17 07:30:25
【问题描述】:

我刚刚在 adonisjs5 上安装了 adonis5-scheduler,但每次尝试服务时都会出错

操作系统:Windows 10 节点版本:14.6.1 npx 版本:6.14.12

预期结果 --构建服务

实际结果

TypeError: this.container.singleton is not a function


1 SchedulerProvider.register
  C:\Users\user\Documents\Code\Sacro\node_modules\adonis5-scheduler\build\providers\SchedulerProvider.js:16

2 anonymous
  C:\Users\user\Documents\Code\Sacro\node_modules\@adonisjs\fold\build\src\Registrar\index.js:103

3 Registrar.register
  C:\Users\user\Documents\Code\Sacro\node_modules\@adonisjs\fold\build\src\Registrar\index.js:101

4 anonymous
  C:\Users\user\Documents\Code\Sacro\node_modules\@adonisjs\application\build\src\Application.js:530

5 Application.registerProviders
  C:\Users\user\Documents\Code\Sacro\node_modules\@adonisjs\application\build\src\Application.js:524

6 HttpServer.wire
  C:\Users\user\Documents\Code\Sacro\node_modules\@adonisjs\core\build\src\Ignitor\HttpServer\index.js:52

7 HttpServer.start
  C:\Users\user\Documents\Code\Sacro\node_modules\@adonisjs\core\build\src\Ignitor\HttpServer\index.js:146

这是我的 package.json 文件中的代码,按照评论部分的要求。

{
  "name": "Sacro",
  "version": "1.0.0",
  "private": true,
  "scripts": {
    "build": "node ace build --production",
    "start": "node server.js",
    "dev": "node ace serve --watch",
    "lint": "eslint . --ext=.ts"
  },
  "devDependencies": {
    "@adonisjs/assembler": "^5.2.0",
    "@types/jsdom": "^16.2.10",
    "@types/supertest": "^2.0.11",
    "adonis-preset-ts": "^2.1.0",
    "eslint": "^7.26.0",
    "eslint-plugin-adonis": "^1.3.1",
    "get-port": "^5.1.1",
    "japa": "^3.1.1",
    "jsdom": "^16.5.3",
    "pino-pretty": "^4.8.0",
    "supertest": "^6.1.3",
    "typescript": "^4.2.4",
    "youch": "^2.2.2",
    "youch-terminal": "^1.1.1"
  },
  "dependencies": {
    "@adonisjs/auth": "^5.1.1",
    "@adonisjs/core": "^5.1.6",
    "@adonisjs/lucid": "^10.0.0",
    "@adonisjs/repl": "^3.1.2",
    "adonis5-scheduler": "^1.0.1",
    "adonisjs-paystack": "^0.2.0",
    "axios": "^0.21.1",
    "luxon": "^1.27.0",
    "mysql": "^2.18.1",
    "phc-argon2": "^1.1.1",
    "proxy-addr": "^2.0.6",
    "reflect-metadata": "^0.1.13",
    "source-map-support": "^0.5.19"
  }
}

【问题讨论】:

    标签: javascript node.js cron adonis.js adonisjs-ace


    【解决方案1】:

    node_modules/adonis5-scheduler/build/providers/SchedulerProvider,你可以做一个热修复:

    添加一个?仅当容器不为空/未定义时,容器调用后才能继续评估

    [...]this.app.container?.singleton[...] 第 16 行

    [...]this.app.container?.bind[...] 第 21 行

    重要提示: 我已经打开了issue 报告这个问题,但我记得我在它的 alpha 版本中使用了 Adonis 5.. 在创建了一个全新的最新版本 Adonis 5 项目 (npm init adonis-ts-app@latest project-name-here) 并安装了adonis5-scheduler 之后,它工作过

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多