javascript - RequireJS:多个 main.js?

标签 javascript module requirejs

我一直在使用 requireJS 构建一个单页应用程序,到目前为止我很喜欢它。我已经到了要在主应用程序之外开发网站的其他部分的地步,但我不确定如何(或是否)为此使用 requireJS。

在我的主应用程序中,一切都由这个脚本标签触发:

<script data-main='/scripts/main' src='/scripts/libs/require.js'>

我现在正在开发主页,它有自己的前端脚本。在网站上线时使用优化器,它将所有这些脚本捆绑到一个 main.js 包中。我正在努力了解我网站的其余部分在哪里适合这个。

假设我的应用程序依赖于 jQuery,并且它被捆绑在应用程序的优化版本中,如果我想在主页上使用 jQuery 怎么办?我不想加载我的应用程序的 main.js 只是为了访问我的 jQuery 模块。 所以是的......有点困惑!


我想象的网站结构有点像这样:

/scripts
  - app-main.js //(includes all module dependencies after optimzation)
  - home-main.js //(includes all module dependencies after optimzation)

应用:

<script data-main='/scripts/app-main' src='/scripts/libs/require.js'>

首页:

<script data-main='/scripts/home-main' src='/scripts/libs/require.js'>


问题

  1. 如何使用 RequireJS 开发网站的不同部分?
  2. 是否建议有多个 main.js 文件?
  3. 我的不同 main.js 文件如何共享通用模块,例如 jQuery 后期优化?

最佳答案

requirejs 团队在 github 上有一些多页面应用程序的示例。 看看:https://github.com/requirejs/example-multipage

基本上您将具有以下结构:

  • page1.html:应用程序的第 1 页。

  • page2.html:应用的第 2 页。

  • js app:存放app特定模块的目录。

  • lib:存放第三方模块的目录,例如 jQuery。

  • common.js:包含 requirejs 配置,它将成为通用模块集的构建目标。

  • page1.js:用于 page1.html 的数据主体。加载公共(public)模块,然后加载页面 1 的主模块 app/main1。

  • page2.js:用于 page2.html 的数据主体。加载公共(public)模块,然后加载页面 2 的主模块 app/main2。

关于javascript - RequireJS:多个 main.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8081605/

相关文章:

javascript - 主干历史和 require.js 问题

javascript - 如何访问 Javascript 二维对象数组?

linux - JBoss 7 正在尝试从 JBoss bin 加载模块库

module - 在 TypeScript 模块中定义全局命名空间/变量

node.js - 使用 requirejs 解决 Node 中的循环依赖

javascript - 依赖注入(inject)与托管依赖与全局对象

javascript - 如何识别 Promise.all() 中的结果

javascript - jQuery 智能感知 : Common reference file (stdafx) for vsdoc

javascript - 如何从两个不同的函数调用更改状态?

haskell - 找不到模块 `Data.Map' -- 它是隐藏包的成员