0

(相关问题:rv.jsr.js有什么区别?)

我有一系列基于 RactiveJS 的组件,每个组件都在自己的模块中。我使用 Ractive 网站上提到的 rv.js 加载器(上面链接)。我喜欢它,但我想做的是使用它(或类似的东西)构建一个即使在非 AMD/RequireJS 应用程序中也能工作的 JS 文件。我看过 Almond,但它似乎想使用 r.js(而不是 rv.js),我不确定有什么区别或需要做哪些更改。

加分点:有没有办法在 Gulp 中运行所有这些?我是那些在他不得不使用命令行时畏缩的人之一,所以请慢慢说,原谅我的无知:)

4

1 回答 1

0

回答有点晚,对此深表歉意。

  • rv.js 是一个 RequireJS 插件,可以像加载 javascript 模块一样加载 ractive 组件
  • r.js 是 RequireJS 优化器,用于将所有文件捆绑在一起并缩小(正是您的用例)

RequireJS 的体积非常大,您不希望它在构建期间与您的应用程序 js 捆绑在一起。

输入 almond.js。它模仿了 RequireJS 的模块解析,但没有处理通过网络实际加载文件的代码。结果是更小的文件大小。

因此,您的工作流程将是:

  • 在开发过程中使用 RequireJS
  • 像你一样使用 rv.js 来加载 ractive 组件
  • 当需要构建时,您使用 r.js 来构建
  • 并确保 almond.js 在最终构建的 js 文件中替换 RequireJS

现在,我使用 grunt,并且有一个插件:grunt-contrib-requirejs

对于 gulp,我建议gulp-requirejs-optimize
如果您查看该页面上的文档,它可以在构建过程中将 requirejs 替换为 almond 的选项。

希望有帮助。

于 2016-05-25T11:58:02.757 回答