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

马特·安德鲁斯(Matt Andrews):

我正在使用requireJS加载脚本。在文档中此详细信息

用于模块名称的路径不应包含.js扩展名,因为路径映射可能用于目录。

在我的应用程序中,我将所有脚本文件映射到配置路径中,因为它们是在运行时动态生成的(我的脚本以类似的方式开始运行,order.js但变成类似的状态order.min.b25a571965d02d9c54871b7636ca1c5e.js(这是文件内容的哈希,出于缓存无效的目的) 。

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

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

有人知道是否可能只需要强制停止将.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附加内容。

希望这是有道理的。

jaketrent:

requirejs的noext插件

加载脚本时不附加“ .js”扩展名,对动态脚本很有用...

文献资料

检查examples文件夹。您可能需要的所有信息都将在注释内或示例代码本身上。

基本用法

将插件放入baseUrl文件夹(通常与main.js文件位于同一文件夹)或为插件位置创建别名:

require.config({
    paths : {
        //create alias to plugins (not needed if plugins are on the baseUrl)
        async: 'lib/require/async',
        font: 'lib/require/font',
        goog: 'lib/require/goog',
        image: 'lib/require/image',
        json: 'lib/require/json',
        noext: 'lib/require/noext',
        mdown: 'lib/require/mdown',
        propertyParser : 'lib/require/propertyParser',
        markdownConverter : 'lib/Markdown.Converter'
    }
});

//use plugins as if they were at baseUrl
define([
        'image!awsum.jpg',
        'json!data/foo.json',
        'noext!js/bar.php',
        'mdown!data/lorem_ipsum.md',
        'async!http://maps.google.com/maps/api/js?sensor=false',
        'goog!visualization,1,packages:[corechart,geochart]',
        'goog!search,1',
        'font!google,families:[Tangerine,Cantarell]'
    ], function(awsum, foo, bar, loremIpsum){
        //all dependencies are loaded (including gmaps and other google apis)
    }
);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在TimedRotatingFileHandler中添加文件扩展名

如何批量添加文件扩展名?

htaccess添加文件扩展名或绕过

批量添加文件扩展名

VSCode在导入自动完成时添加.js扩展名

是否可以提供不带文件扩展名的静态HTML?

是否可以找到UIImage的文件扩展名?

为什么在reactJS中导入组件时未添加.js [文件扩展名]?

除了扩展名以外,.json,.txt,.html,.css和.js文件之间是否有区别?

浏览器中的Javascript文件是否需要.js扩展名?

如何将扩展名添加到未知扩展名文件

如何添加文件扩展名而不是删除旧的扩展名

Python:检查扩展名列表中是否存在以扩展名结尾的文件名

如何向其抓取的文件添加文件扩展名

阻止通过.htaccess访问无扩展名的文件?

是否可以将 .java 文件添加到我的 chrome 扩展名?

是否可以打开多个具有相同扩展名的文件,而无需通过cmd键入扩展名?

JavaScript RegExp可以识别特定的文件扩展名

可以访问文件的扩展名(作为整数变量)

Mac:“命令”文件扩展名可以有哪些脚本?

为所有 bash 文件添加 .sh 扩展名

vim和NERD树扩展名-添加文件

如何使用“ .htaccess”文件添加“ .php”扩展名

使用相同的扩展名复制多个文件但添加日期

如何移动多个文件并添加.pgp扩展名?

在 bash 中为特定文件添加额外的扩展名

向多个文件添加扩展名(Python3.5)

添加批处理文件扩展名

想用excel vba在文件扩展名前添加后缀