2016-05-31 21 views
0

前に、r.jsを使用してJavaScriptを最適化して小型化しました。私はこのような何かを見main.jsファイル持っていた:r.js最適化された最適化されたファイルが実行されていません

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のファイルがあります:

:代わりにストレートのコマンドラインに引数を最適化/縮小化を渡す

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ファイルを作成しました

({ 
    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ファイルが正常に作成されます。出力は次のとおりです。

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がコードを実行しないのですか?エラーメッセージなしで、私はトラブルのトラブルシューティング:)

+1

将来の注意:cdn.mathjax.orgの寿命が近づいている、https://www.mathjax.org/cdn-shuttingをチェックしてください-down /マイグレーションのヒント。 –

答えて

1

を持っていますので、私は

generateSourceMap: true, 
    preserveLicenseComments: false, // this is necessary for generateSourceMap to work 
    optimize: "uglify2", 

をコメントアウトし、それが働きました!その後、私はそのもののコメントを外し、それはまだ働いた!

デフォルトの設定ですので、requireJS 2.2(私は前にRequireJS 2.1.6を使用していた)のように、あなたが今、

optimize: "uglify", 

か、まったく何を使用することができるようです。 requireJS 2.2では、この場合uglify2を使用しています。これは、私が与えることができる説明に最も近いものです:/

関連する問題