2015-07-01 57 views
0

我學習使用r.js優化/縮小/醜化前端應用程序。到目前爲止,它確實很酷且很有前途,但我正試圖弄清楚如何做一件事。我希望能夠將目錄中的所有文件(js,css,html)連接到一個優化文件中,我可以將它放在前端的腳本標記中。優化RequireJS前端應用程序

到目前爲止,我只成功地只把我的requirejs.config文件中列出的JS文件合併成一個優化的文件。

但我想知道如果有一種方法來連接不僅僅是那些在requirejs.config文件中列出多個文件 - 這裏是我的參考文件requirejs.config:

requirejs.config({ 
    enforceDefine: false, 
    waitSeconds: 8, 
    baseUrl: '/static', 
    paths: { 
     'async': 'vendor/async', 
     'jquery': 'vendor/jquery', 
     'ejs': 'vendor/ejs', 
     'text': 'vendor/text', 
     'form2js': 'vendor/form2js', 
     'underscore': 'vendor/underscore', 
     'ijson':'vendor/idempotent-json', 
     'backbone': 'vendor/backbone', 
     'bootstrap': 'vendor/bootstrap', 
     'handlebars': 'vendor/handlebars', 
     'backbone-validation': 'vendor/backbone-validation-amd' 
     //'socketio': 'https://cdn.socket.io/socket.io-1.3.5' 
    }, 

    'shim': { 
     'underscore': { 
      'exports': '_' 
     }, 
     'backbone': { 
      'deps': ['jquery', 'underscore'], 
      'exports': 'Backbone' 
     }, 
     'handlebars': { 
      'exports': 'Handlebars' 
     }, 
     ejs: { 
      exports: "ejs" 
     } 
    } 
}); 

我build.js文件看起來像這樣:

({ 
    "baseUrl": "./public/static", 
    "name": "app/js/main", 
    "mainConfigFile": "./public/static/app/js/main.js", 
    "out": "./public/static/app/js/optimized.js" 
}) 

其他build.js文件,我試圖看起來像這樣:

({ 
    "baseUrl": "./public/static", 
    "dir": "./js-built", 
    "mainConfigFile": "./public/static/app/js/main.js", 
    //"optimize": 'none', 

    "modules": [ 
     { 
      name: "app/js/main", 

      include: [ 
       "text" 
      ], 

      excludeShallow: [ 

      ] 
     } 


    ], 
}) 

就像我說的,build.js文件的第一個版本將requirejs.config中列出的所有JS文件連接成一個文件(在我的例子中爲optimized.js)。 build.js文件的第二個版本複製整個目錄並縮小所有文件,但保持目錄結構不變。

我想要做的是結合第一和​​第二。縮小目錄中的所有文件,但將它們全部連接成一個文件。

這可能嗎?

如何做到這一點我的一個猜測是簡單地列出所有我想連接我的requirejs.config內,然後使用我提到的第一個build.js文件中的文件。它是否正確?

+0

看起來我可能需要在build.js文件中「optimizeAllPluginResources:true」 – Olegzandr

回答

1

不,你不能合併兩個腳本,因爲在第一個腳本中你只是優化一個文件(這就是優化創建單個文件的原因:'out'參數),在第二個腳本中,重新優化整個目錄(這就是爲什麼你使用'dir'參數來複制所有優化的資源)。實際上,在同一個腳本中同時使用'dir'和'out'參數會在您啓動優化時產生錯誤。 隨着第二個腳本的使用,你將在js-built目錄中優化main.js,爲什麼你不使用那個?

而且這些參數可以在你的腳本對你有用: optimizeCss: 'standard'(醜化css文件), removeCombined: true(去掉優化過程中已經包括在其他文件)

看一看this website更多信息。