我有一个使用 Typescript 和 RequireJs 的完整应用程序,它运行良好。我现在已经下载了 WebEssentials,它正在生成缩小的脚本文件。WebEssentials 会生成与原始脚本文件同名的单独 *.min.js 文件。
如何告诉 RequireJs 加载我的缩小文件而不是我的原始脚本文件?
提前致谢
我有一个使用 Typescript 和 RequireJs 的完整应用程序,它运行良好。我现在已经下载了 WebEssentials,它正在生成缩小的脚本文件。WebEssentials 会生成与原始脚本文件同名的单独 *.min.js 文件。
如何告诉 RequireJs 加载我的缩小文件而不是我的原始脚本文件?
提前致谢
您可以使用路径配置来覆盖模块路径。您甚至可以回退到非缩小文件:
requirejs.config({
enforceDefine: true,
paths: {
jquery: [
'lib/jquery.min',
'lib/jquery'
]
}
});
可能有一种更通用的方法来使用我不知道的最小文件!
您可以创建一个简单的自定义版本的 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
编译器选项将所有文件连接成一个并缩小它为了获得最佳性能,您应该研究优化器并确定单脚本方法是正确的决定还是多个较小的库是更好的方法。我怀疑加载每个 .min.js 文件是否适合您。