【问题标题】:Best way of including commonjs modules in a project using requirejs使用 requirejs 在项目中包含 commonjs 模块的最佳方法
【发布时间】:2017-08-10 11:24:11
【问题描述】:

我使用requirejs 来管理我项目中的javascript 文件。但是,我想使用一些不符合 AMD 格式的外部库。我想要包含的库是barba.js。这将如何使用 requirejs 的package loading feature 来完成?理想情况下,我想在不运行转换工具的情况下包含一个 commonjs 模块。

【问题讨论】:

  • 除非我在这里遗漏了一些重要的东西,否则 barba.js 确实遵循 AMD 格式,代码的第一行尝试使用不同的解决方案,例如导出和定义。这意味着它应该可以与 requireJS 一起正常工作。

标签: javascript requirejs amd commonjs umd


【解决方案1】:

Barba 不使用 CommonJS 模块格式。

Barba 使用UMD (Universal Module Definition) 模块格式。这意味着它兼容 AMD 模块加载(RequireJS 使用)和 CommonJS 模块加载(Node.js 使用)。

因此,这意味着您可以使用 RequireJS 包含 Barba - 或任何其他 UMD 格式的模块,就像您包含 AMD 模块一样:

define([
  "barba/barba"
], function(Barba) {
  Barba.Pjax.start(); // You can use Barba here
});

【讨论】:

    【解决方案2】:

    来自 requireJS 文档。

    define(function(require, exports, module) {
        //Put traditional CommonJS module content here
    });
    

    这应该会让您一切顺利。我真的不确定它是否需要。

    【讨论】:

    • 谢谢。我见过这个选项,但如果可能的话,我不想手动修改每个文件..
    • 正如我强硬暗示的那样,我认为您甚至不需要这样做...查看 barba.js 源代码,我认为它可以与 requireJS 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-27
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多