用Require加载由TypeScript生成的min.js文件



我有一个完整的应用程序与Typescript和RequireJs工作,它是完美的工作。我现在已经下载了WebEssentials,它正在生成缩小的脚本文件。WebEssentials生成独立的*.min.js文件,其名称与原始脚本文件相同。

我如何告诉RequireJs加载我的缩小文件而不是我的原始脚本文件?

Thanks in advance

你可以使用path config来覆盖模块路径。您甚至可以退回到非缩小文件:

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;

这没有什么神奇的。您有几个选项

  1. 使用RequireJS优化器为你生成最小文件。可配置。
  2. 使用--out编译器选项将所有文件合并为一个并缩小
  3. 创建一个脚本/批处理文件,将你的应用复制到其他地方,将所有.min.js文件重命名为.js,并覆盖非min.js文件。或者其他一些混合,但是你明白要点了
  4. 使用Steve提到的路径配置。小应用还行,大应用就不太理想了。

为了获得最佳性能,您应该查看优化器并确定单脚本方法是正确的决定还是多个较小的库是更好的方法。我怀疑加载每个.min.js文件对您来说是不是理想的解决方案。

最新更新