【问题标题】:Adonsjs 4 - what is use() and why it not work in version 5Adonsjs 4 - 什么是 use() 以及为什么它在版本 5 中不起作用
【发布时间】:2021-07-29 13:58:19
【问题描述】:

我尝试理解代码 https://github.com/nuxt-community/adonuxt-template 。 什么是 use() 以及为什么它在版本 5 中不起作用。 怎么改?

const { Ignitor } = require('@adonisjs/ignitor')

new Ignitor(require('@adonisjs/fold'))
  .appRoot(__dirname)
  .fireHttpServer()
  .then(() => {
    return use('App/Services/Nuxt').build()
  })
  .then(() => {
    use('Logger').info('Nuxt is ready to handle requests')
  })
  .catch(console.error)

以及如何重写这些文件以在版本 5 中工作:

https://github.com/nuxt-community/adonuxt-template/blob/master/start/app.js https://github.com/nuxt-community/adonuxt-template/blob/master/app/Commands/NuxtBuild.js https://github.com/nuxt-community/adonuxt-template/blob/master/app/Controllers/Http/NuxtController.js https://github.com/nuxt-community/adonuxt-template/blob/master/app/Services/Nuxt.js

【问题讨论】:

    标签: adonis.js


    【解决方案1】:

    用于从 ioc 容器又名 adonis-fold 导入依赖项的 use() 方法已在 v5 中删除。该方法的替代方法现在是使用 @ioc 前缀的 ESM 导入。请遵循此介绍性指南https://docs.adonisjs.com/releases/introducing-adonisjs-v5-preview#esm-imports-all-the-way

    AdonisJS v5 与 v4 相比有各种重大变化,开发工具也有重大变化,例如 typescript 作为一等公民,adonis cli 已弃用。此外,AdonisJS 团队预计将在不久的将来发布升级指南。

    【讨论】:

      【解决方案2】:

      use() 是由 IoC 容器 AdonisJs (adonis-fold) 提供的。

      此函数将尝试解析 Adonis 配置文件中定义的绑定或命名空间,如果找不到任何内容,则回退到默认的 require() 函数来导入包。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-18
        • 1970-01-01
        • 1970-01-01
        • 2021-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多