加载min.js文件由TypeScript生成并带有Require

时间:2013-01-14 17:41:19

标签: requirejs typescript

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

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

提前致谢

3 个答案:

答案 0 :(得分:9)

您可以使用路径配置覆盖模块路径。您甚至可以回退到非缩小文件:

requirejs.config({
    enforceDefine: true,
    paths: {
        jquery: [
            'lib/jquery.min',
            'lib/jquery'
        ]
    }
});

可能有一种更通用的方法来使用我不知道的min文件!

答案 1 :(得分:9)

您可以创建一个简单的自定义需要版本,它会有条件地将'.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;

答案 2 :(得分:0)

这没有任何魔力。你有几个选择

  1. 使用RequireJS optimizer为您生成min文件。非常可配置。
  2. 使用--out编译器选项将所有文件连接成一个并缩小
  3. 创建一个脚本/批处理文件以将您的应用程序复制到其他位置,将所有.min.js文件重命名为.js并覆盖非最小化的文件。或者其他一些混合,但你得到了要点
  4. 使用史蒂夫提到的paths config。适用于小型应用程序,不适合大型应用程序。
  5. 为了获得最佳性能,您应该查看优化器并确定单脚本方法是正确的决策还是多个较小的库是更好的方法。我怀疑加载每个.min.js文件对你来说是理想的解决方案。