

30個程度のjsファイルをconcatをして、jsファイルの1本化をした場合に、クライアントサイドでのルーティング処理はどのように実装するものでしょうか？

現在はpage.jsを使い、URLを判別して実行するという実装をしているのですが、  
他の実装方法が無いか検討しています。  
が、なかなか思い当たる物がありません。

ちなみに、SPAを開発しているわけではありません。  
どなたかご助言頂きたく。  
説明が足りなければ、お答えします。


CC BY-SA 3.0
2015-04-20T15:20:39.140
9355
2016-10-18T05:10:41.827
9400
question
javascript
javascriptでのルーティング


とにかく、なにかの基準に沿ったルーターが不可欠です。それでルーターを通じてスクリプト（が含む関数）の実行が制御できますので、アプリケーションコードの構成に影響はほとんどないと思います。

SPAを開発していなくとも、ルーティングはある程度価値のあるアプローチかと。[director](https://github.com/flatiron/director#server-
side-cli-routing)などでルートを構築したり...

[code]

      var routes = {
        '/script1': require('script1').hoge,
        '/script2': require('script2').hoge,
        '/books/view/:bookId': viewBook
      };
    
      var router = Router(routes);
    
      //
      // a global configuration setting.
      //
      router.configure({
        on: allroutes
      });
      router.init();
    
[/code]

...或いは、本当にSPAに似てもいないサイトを開発していれば、クライアントサイドでのルーティングを完全に破棄して、いつものexpressルーティングも使用できます:

[code]

    var express = require('express')
    var app = express()
    app.get('/script1/', function (req, res) {
      var script1 = require('script1');
      // ここでscript1を用いる関数などを使用
      res.send(script1.hoge);
    });
    
    router.on(/script2/, function () {
      // ここでscript2を用いる関数などを使用
      res.send(script2.hoge);
    });
    
    
    app.listen(3000)
    
[/code]

アプリケーションコードの一本化については、`[browserify](http://browserify.org/)`などで実装後に簡単にできます。圧縮などは`[uglify](http://lisperator.net/uglifyjs/)`のような追加ツールを参照。


CC BY-SA 3.0
2016-02-25T00:36:28.100
22495
2016-02-25T05:56:29.193
2016-02-25T05:56:29.193
8000
6008
9355
answer