返回介绍

开场白

开始使用

API

配置

部署

其他

API: The ModuleContainer Class

发布于 2019-12-01 05:33:26 字数 2481 浏览 926 评论 0 收藏 0

  • 来源: core/module.js

所有模块都将在ModuleContainer实例的context调用。

Tapable plugins

我们可以在某些生命周期事件中注册hooks。

nuxt.moduleContainer.plugin('ready', async (moduleContainer) => {
  // Do this after all modules where ready
})

在 modules 的context中我们可以使用它:

this.plugin('ready', async (moduleContainer) => {
  // Do this after all modules where ready
})
插件参数说明
readymoduleContainernuxt.config.js中的所有模块都已初始化

方法

添加Vendor(vendor)

vendor已经废弃不再使用

添加到options.build.vendor并应用唯一插件过滤器。

添加到模板中 (template)

  • template: String or Object
    • src
    • options
    • fileName

在构建到项目buildDir (.nuxt)期间使用lodash 模板渲染指定模板。

如果未提供fileNametemplatestring,则目标文件名默认为[dirName].[fileName].[pathHash].[ext]

这个方法将返回 { dist, src, options } 对象.

添加插件 (template)

使用addTemplate注册插件并将其添加到 plugins[]选项。

您可以使用template.ssr: false来禁用包含在SSR中的插件。

添加服务器端渲染中间件 (middleware)

将中间件插入 options.serverMiddleware.

extendBuild (fn)

Allows easily extending webpack build config by chaining options.build.extend function.

extendRoutes (fn)

允许通过链接options.build.extendRoutes函数轻松扩展webpack构建配置。

添加模块 (moduleOpts, requireOnce)

注册模块。moduleOpts可以是string[src, options]。如果requireOncetrue且已解析的模块导出meta阻止两次注册相同的模块。

requireModule (moduleOpts)

addModule(moduleOpts, true)

Hooks

我们可以在某些生命周期事件中注册钩子。

HookArgumentsWhen
modules:before(moduleContainer, options)在创建ModuleContainer类之前调用​​,对重载方法和选项很有用。
modules:done(moduleContainer)加载所有模块时调用。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文