gpt4 book ai didi

javascript - 如何使用 r.js 从构建中排除 urlArgs

转载 作者:搜寻专家 更新时间:2023-11-01 04:25:57 24 4
gpt4 key购买 nike

我使用 r.js 优化器根据 documentation 中建议的构建配置文件组合 js 文件.这是我的build-config.js:

({
baseUrl: ".",
paths: {
jquery: '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
},
name: "main",
out: "main-built.2013-07-30.js"
})

如您所见,它基于 ma​​in.js 文件,这是它的代码:

requirejs.config({
baseUrl: 'scripts',
urlArgs: "bust=" + (new Date()).getTime(),
paths: {
jquery: [
'//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min',
'lib/jquery-1.9.1.min',
],
},
});

require([
'layout',
'cue',
], function() {

});

如果我在 ma​​in.js 中保留 urlArgs: "bust="+ (new Date()).getTime() 所有外部文件(这里是加载的 jquery来自 CDN)看起来像 .../jquery.js?bust=1377412213

所以每次构建时都注释掉这一行是 PITA。我已经阅读了所有文档并在谷歌上搜索了解决方案,但一切都是徒劳的。也许我做错了?

最佳答案

在这个问题上晚了一步,但这里我使用了解决方案:将 urlArgs 参数附加到配置中并进行后续调用。

HTML:

<script src="js/libs/require.js"></script>
<script src="js/config.js"></script>
<script>require(['main-app']);</script>

配置文件:

requirejs.config({
paths: {...},
shim: {...}
}); 

// Apply the cache bust only for the browser.
if (window) {
requirejs.config({
urlArgs: REQUIRE_NOCACHE ? "bust="+(new Date()).getTime() : null
});
}

优化器只采用第一个 requirejs.config 声明,而忽略后续代码。第二个 requirejs.config 声明扩展而不是覆盖第一个,因此 urlArgs 仍然成功地应用于浏览器中的模块。希望对您有所帮助。

关于javascript - 如何使用 r.js 从构建中排除 urlArgs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18426399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com