javascript - 是否可以阻止 requireJS 自动添加 .js 文件扩展名?

标签 javascript requirejs

我正在使用 requireJS 加载脚本。它有 this detail in the docs :

The path that is used for a module name should not include the .js extension, since the path mapping could be for a directory.

在我的应用程序中,我将我所有的脚本文件映射到一个配置路径中,因为它们是在运行时动态生成的(我的脚本开始时像 order.js 这样的东西但是变成像 order.min.b25a571965d02d9c54871b7636ca1c5e.js(这是文件内容的哈希值,用于缓存清除目的)。

在某些情况下,require 会在这些路径的末尾添加第二个 .js 扩展名。虽然我在服务器端生成动态路径然后填充配置路径,但我必须编写一些额外的 javascript 代码以从有问题的文件中删除 .js 扩展名。

阅读 requireJS 文档,我真的不明白为什么你会想要将路径映射用于目录。这是否意味着可以通过某种方式在一次调用中加载整个目录的文件?我不明白。

有人知道是否可以强制 require 停止将 .js 添加到文件路径,这样我就不必绕过它了吗?

谢谢。

更新:根据要求添加了一些代码示例。

这是在我的 HTML 文件中(这是一个 Scala 项目,所以我们不能将这些变量直接写入 .js 文件):

foo.js.modules = {
    order               : '@Static("javascripts/order.min.js")',
    reqwest             : 'http://5.foo.appspot.com/js/libs/reqwest',
    bean                : 'http://4.foo.appspot.com/js/libs/bean.min',
    detect              : 'order!http://4.foo.appspot.com/js/detect/detect.js',
    images              : 'order!http://4.foo.appspot.com/js/detect/images.js',
    basicTemplate       : '@Static("javascripts/libs/basicTemplate.min.js")',
    trailExpander       : '@Static("javascripts/libs/trailExpander.min.js")',
    fetchDiscussion     : '@Static("javascripts/libs/fetchDiscussion.min.js")'
    mostPopular         : '@Static("javascripts/libs/mostPopular.min.js")'
};

然后在我的 main.js 中:

requirejs.config({
    paths: foo.js.modules
});

require([foo.js.modules.detect, foo.js.modules.images, "bean"], 
    function(detect, images, bean) {
        // do stuff
});

在上面的示例中,我必须使用字符串“bean”(指的是 require 路径)而不是我的直接对象(就像其他人使用 foo.js.modules.bar)否则我会附加额外的 .js

希望这是有道理的。

最佳答案

如果您不想添加对 noext 的依赖,您也可以将一个虚拟查询字符串附加到路径以防止附加 .js 扩展名,如:

require.config({
    paths: {
        'signalr-hubs': '/signalr/hubs?noext'
    }
});

这就是 noext 插件的作用。

关于javascript - 是否可以阻止 requireJS 自动添加 .js 文件扩展名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10585099/

相关文章:

javascript - 我如何访问requirejs中定义之外的变量

javascript - Requirejs 优化器 - 为站点的各个部分创建最小的脚本分组

javascript - 如何使用 javascript 创建自定义关键帧 css 动画

javascript - pdf生成后重定向

javascript - 在浏览器外运行 JavaScript 应用程序

javascript - requireJS 的不稳定行为

javascript - 获取集合后不会调用集合重置上的 listenTo

通过 XML 注释标签进行 Javascript 恶意注入(inject)/重定向 (JS/Exploit-Blacole.em)

javascript - 使用 var 和函数声明 javascript 对象有什么区别?

jQuery .serializeArray() 返回空数组