【问题标题】:Loading specific module from concatenated file using RequireJS使用 RequireJS 从连接文件中加载特定模块
【发布时间】:2015-10-02 18:14:19
【问题描述】:

尝试在项目中使用URI.js 库,但在使用 RequireJS 时遇到问题。 URI 的自述文件表明它可以与 requirejs 一起使用——当你使用源代码时这是正确的——但在单独使用 minified/concatenated distribution file 时却不是——就像在生产环境中那样。

他们的构建过程将多个库收集到一个 .min 文件中,并且它们都将自己定义为模块。

无论我如何需要该脚本,我收到的唯一参数是其分发文件中的第一个模块 (IPv6),这不是我需要的。

我缺少什么微不足道的东西吗?

<script>
require.config({
    paths: {
        urijs: 'dist/URI'
    }
});

require(['urijs'], function(URI) {
    console.log(URI);
});
</script>

【问题讨论】:

  • 你需要什么模块?
  • URI 本身。我会考虑自定义构建以省略可选模块,但我们通过bower 使用它并且正在寻找一个简单的实用程序,而不是我们必须自定义编译/缩小的东西

标签: javascript requirejs


【解决方案1】:

确实无法使用缩小的文件,因为它没有正确构建。其中的所有define 调用都是匿名的,但它们应该包含模块名称。如果他们有,您就可以使用缩小的文件。

为了让它工作,在paths 配置中,我将urijs 指向包含模块的所有单个.js 文件的目录,然后我需要URI.js 作为@ 987654326@。我让r.js 缩小它以分发我的代码。

我已经用npm 安装了它,但我刚刚用bower 进行了检查,过程应该完全相同。

【讨论】:

  • 我感觉这就是原因,谢谢。我不使用r.js,当我们部署到生产环境时,我们正在从 Bower 库中复制缩小的文件,这意味着我 a) 需要包含这些额外的文件,并且 b) 我仍然无法连接它们,这意味着我d 对单个库有四个新的 http 请求 - 这是不可接受的。我最近收到了 URI 作者的回复:“如果你使用 require,你可能想要使用源文件”。难以置信。
猜你喜欢
  • 2014-12-15
  • 2013-03-23
  • 1970-01-01
  • 1970-01-01
  • 2015-03-16
  • 2015-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多