5

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

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

提前致谢

4

3 回答 3

9

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

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

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

于 2013-01-14T22:29:59.277 回答
9

您可以创建一个简单的自定义版本的 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;
于 2014-06-26T16:30:44.550 回答
0

这没有什么魔法。不过你有几个选择

  1. 使用RequireJS 优化器为您生成最小文件。非常可配置。
  2. 使用--out编译器选项将所有文件连接成一个并缩小它
  3. 创建一个脚本/批处理文件以将您的应用程序复制到其他地方,将所有 .min.js 文件重命名为 .js 并覆盖非 min'd 文件。或者其他一些混合,但你明白了要点
  4. 使用史蒂夫提到的路径配置。适用于小型应用程序,不太适合大型应用程序。

为了获得最佳性能,您应该研究优化器并确定单脚本方法是正确的决定还是多个较小的库是更好的方法。我怀疑加载每个 .min.js 文件是否适合您。

于 2013-01-15T00:54:59.700 回答