首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >r.js最小化未运行的优化文件

r.js最小化未运行的优化文件
EN

Stack Overflow用户
提问于 2016-05-31 14:34:05
回答 1查看 128关注 0票数 0

在此之前,我曾使用r.js成功地优化和缩小了我的javascript。我有一个类似于这样的main.js文件:

代码语言:javascript
复制
require.config({
    baseUrl: "scripts/lib",
    paths: {
        jquery: "http://code.jquery.com/jquery-1.11.2.min",
        underscore: "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min",
        d3: "d3-for-development",
        katex: "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min", // or 0.2.0
        mathjax: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML&delayStartupUntil=configured",
        etc...
    },
    shim: {
        underscore: { exports: "_" },
        chosen: { deps: ["jquery"] },
        mathjax: {
            exports: "MathJax",
            init: function (){
                MathJax.Hub.Config({
                    tex2jax: {
                        inlineMath: [['$','$'], ['\\(','\\)']],
                        processEscapes: true,
                    },
                });
                MathJax.Hub.Startup.onload();
                return MathJax;
            }
        },
    },
});

require( [
    "jquery",
    "underscore",
    "browser-detect",
    "check-types",
    "katex",
    "mathjax",
    etc
], function(
    $,
    _,
    browser,
    check,
    katex,
    mathjax,
    etc
){

/////////////////////////// INITIALIZATION ///////////////////////////
loginInit()
show('#login')

etc...

我可以成功地运行node build/r.js -o mainConfigFile=www/scripts/main.js baseUrl=www/scripts/lib name=../main out=www/scripts/main-optimized.min.js generateSourceMap=true preserveLicenseComments=false optimize=uglify2来缩小。一切正常。

现在,我有一个config.js文件,如下所示:

代码语言:javascript
复制
require.config({
    urlArgs: "bust=" + new Date().getTime(),
    baseUrl: "scripts/lib",
    paths: {
        jquery: ["jquery-min", "http://code.jquery.com/jquery-1.11.2.min"],
        underscore: ["underscore-min", "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.2/underscore-min"],
        d3: "d3-for-development", // if we add patches separately, then we can just use https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min
        katex: ["katex-min", "https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min"], // or 0.2.0
        mathjax: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML&delayStartupUntil=configured",
        main: "../main",
        etc...
    },
    shim: {
        underscore: { exports: "_" },
        chosen: { deps: ["jquery"] },
        mathjax: {
            exports: "MathJax",
            init: function init() {
                MathJax.Hub.Config({
                    tex2jax: {
                        inlineMath: [['$', '$'], ['\\(', '\\)']],
                        processEscapes: true }
                });
                MathJax.Hub.Startup.onload();
                return MathJax;
            }
        }
    }
});

require(["main"], function (main) {
    // pass.  by loading main, we run main.js
});

我创建了一个rbuild.js文件,而不是将minify/优化参数直接传递到命令行:

代码语言:javascript
复制
({
    mainConfigFile: "../www/scripts/config.js",
    baseUrl: "../www/scripts/lib",
    name: "../config",
    out: "../www/scripts/config-optimized.min.js",
    generateSourceMap: true,
    preserveLicenseComments: false, // this is necessary for generateSourceMap to work
    optimize: "uglify2",
    // removeCombined: true,
    // findNestedDependencies: true,
    paths: {
        // https://github.com/jrburke/requirejs/issues/791
        // http://www.anthb.com/2014/07/04/optimising-requirejs-with-cdn-fallback
        jquery: "jquery-min",
        underscore: "underscore-min",
        d3: "d3-for-development",
        katex: "katex-min",
        mathjax: "http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML&delayStartupUntil=configured",
        marked: "marked",
        chosen: "chosen-min",
        jsnetworkx: "jsnetworkx-min",
        main: "../main",
    },
})

我在命令行中使用node build/r.js -o build/rbuild.js运行它。它似乎运行成功,并使config-optimized.min.js文件,如预期。产出如下:

代码语言:javascript
复制
Tracing dependencies for: ../config
Cannot optimize network URL, skipping: http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_HTML&delayStartupUntil=configured
Uglify2 file: /Users/Matthew/programming/prove-math/www/scripts/config-optimized.min.js

/Users/Matthew/programming/prove-math/www/scripts/config-optimized.min.js
----------------
/Users/Matthew/programming/prove-math/www/scripts/lib/jquery-min.js
/Users/Matthew/programming/prove-math/www/scripts/lib/underscore-min.js
/Users/Matthew/programming/prove-math/www/scripts/lib/browser-detect.js
/Users/Matthew/programming/prove-math/www/scripts/lib/check-types.js
/Users/Matthew/programming/prove-math/www/scripts/lib/katex-min.js
/Users/Matthew/programming/prove-math/www/scripts/lib/profile.js
/Users/Matthew/programming/prove-math/www/scripts/lib/marked.js
/Users/Matthew/programming/prove-math/www/scripts/lib/d3-for-development.js
/Users/Matthew/programming/prove-math/www/scripts/lib/user.js
/Users/Matthew/programming/prove-math/www/scripts/lib/graph-animation.js
/Users/Matthew/programming/prove-math/www/scripts/lib/graph.js
/Users/Matthew/programming/prove-math/www/scripts/lib/node.js
/Users/Matthew/programming/prove-math/www/scripts/lib/blinds.js
/Users/Matthew/programming/prove-math/www/scripts/lib/chosen-min.js
/Users/Matthew/programming/prove-math/www/scripts/main.js
/Users/Matthew/programming/prove-math/www/scripts/lib/../config.js

但是当我通过服务器访问index.html时,页面是空白的。JS控制台不提供错误或日志消息,这意味着没有运行JS。我的服务器没有出现错误,这意味着所有东西都已成功地发送到客户端,并且客户机JS没有运行。

所以我很确信JS在那里但没有跑。我的设置有什么问题导致config.js不运行代码吗?由于没有错误消息,我在故障排除方面遇到了困难:)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 15:46:24

所以我评论说

代码语言:javascript
复制
    generateSourceMap: true,
    preserveLicenseComments: false, // this is necessary for generateSourceMap to work
    optimize: "uglify2",

而且起作用了!然后,我取消了评论,但它仍然有效!

似乎从requireJS 2.2 (我以前使用过RequireJS 2.1.6 )开始,您现在可以使用

代码语言:javascript
复制
    optimize: "uglify",

或者根本没有,因为这是默认设置。在requireJS 2.2中,它确实在本例中使用uglify2。这是我能给出的最接近解释的东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37548585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档