Requirejs 使用Require加载TypeScript生成的min.js文件
我有一个使用Typescript和RequireJs的完整应用程序,它工作得非常完美。我现在已经下载了WebEssentials,它正在生成缩小的脚本文件。WebEssentials生成与原始脚本文件同名的分离的*.min.js文件 我如何告诉RequireJs加载我的缩小文件而不是原始脚本文件Requirejs 使用Require加载TypeScript生成的min.js文件,requirejs,typescript,Requirejs,Typescript,我有一个使用Typescript和RequireJs的完整应用程序,它工作得非常完美。我现在已经下载了WebEssentials,它正在生成缩小的脚本文件。WebEssentials生成与原始脚本文件同名的分离的*.min.js文件 我如何告诉RequireJs加载我的缩小文件而不是原始脚本文件 提前感谢您可以使用路径配置覆盖模块路径。您甚至可以退回到未缩小的文件: requirejs.config({ enforceDefine: true, paths: {
提前感谢您可以使用路径配置覆盖模块路径。您甚至可以退回到未缩小的文件:
requirejs.config({
enforceDefine: true,
paths: {
jquery: [
'lib/jquery.min',
'lib/jquery'
]
}
});
可能有一种更通用的方法来使用我不知道的min文件 这没有什么魔力。不过你有一些选择
为了获得最佳性能,您应该查看优化器,并确定单脚本方法是正确的决策,还是多个较小的库是更好的方法。我怀疑加载每个.min.js文件是否是您的理想解决方案。您可以创建一个简单的自定义版本的require,它将有条件地将“.min.js”附加到所有通常只接收“.js”附加的模块文件请求中。考虑以下事项:
//Establish a new 'useMinified' boolean in your initial config.
require.config({ useMinified: true });
然后,编辑require.js库文件并修改“nameToUrl”函数,如下所示:
//Join the path parts together, then figure out if baseUrl is needed.
url = syms.join('/');
//new statement
var extension = config.useMinified ? '.min.js' : '.js';
//customized statement
url += (ext || (/^data\:|\?/.test(url) || skipExt ? '' : extension));
url = (url.charAt(0) === '/' || url.match(/^[\w\+\.\-]+:/) ? '' : config.baseUrl) + url;
也许out参数是最好的解决方案。我已经测试过了,即使我缩小并在主页中显式加载缩小的文件,Require仍然会加载我脚本的详细版本,或者没有缩小的版本。在这种情况下,将一个文件与所有脚本一起使用时,我如何告诉Require停止加载脚本,因为所有内容都已加载?顺便说一下,out参数不正常。没有在--out参数中生成脚本。如果您使用AMD
--out
将不适用于您。您将不得不使用requirejs优化器。这会带来什么性能成本?您的示例支持生产,但仅举一个示例,假设我使用['scriptfile','scriptfile.min']
<代码>'scriptfile'在开发中,但只有'scriptfile.min'
在生产中。RequireJS在生产中查找'scriptfile'
的次数是一次还是在每个模块需求上?我假设有一点额外的工作,只是因为属性值是数组而不是字符串。在我的非正式测试中,它按顺序测试这些值,并且足够聪明地理解404是404(意味着不再查看)。如果你是开发人员,但喜欢生产,那么性能肯定会受到影响,反之亦然。我只是想不出为什么这还没有在requirejs中实现!?