2013-05-11 48 views
2

我試圖編寫一個自定義腳本/插件以包含在requireJS r.js優化器(用於指紋靜態文件和一個用於捆綁JSON資源)。如何將插件添加到requirejs r.js優化器,該優化器僅在構建期間運行?

我沒有想到的是如何在構建過程中觸發我的自定義優化器。我可以寫腳本,但是如何在優化期間觸發bundle-build.js模塊。

感謝的提示!

編輯:
我知道我可以使用「onBuildRead /寫」,但這是不添加優化插件的地方。類似require-css的東西比較接近,但是是一個文件前綴,它會觸發該插件,該插件指定在構建期間指定使用pluginBuilder。不是我正在尋找的東西。

回答

3

優化器應該獲取指定爲依賴關係的所有文件。如果您需要包括額外的事情,那麼你可以添加使用onBuildRead或onBuildWrite回調,在這裏你可以添加額外的邏輯/刪除多餘的東西:

({ 
    name: 'main', 
    baseUrl: '../', 
    // optimize: 'none', 
    optimize: 'uglify2', 
    exclude: ['jquery'], 
    mainConfigFile: '../main.js', 
    out: '../main.min.js', 
    // A function that if defined will be called for every file read in the 
    // build that is done to trace JS dependencies. 
    // Remove references to console.log(...) 
    onBuildRead: function (moduleName, path, contents) { 
     return contents; 
     // return contents.replace(/console.log(.*);/g, ''); 
    }, 
    onBuildWrite: function (moduleName, path, contents) { 
     // Add extra stufff; 
     return contents; 
    } 
}) 
+0

我一直在看這些,太,以及使用[前綴!/ pluginbuilder](http://requirejs.org/docs/plugins.html#apipluginbuilder)插件以及[內部API](https://github.com/jrburke/requirejs/wiki/Internal-API:- onResourceLoad)和[this](https://groups.google.com/forum/#!topic/requirejs/wOSAa25d6xY)頁面。我仍在玩'onBuildRead/Write',但我希望找到一些hook/etc,它允許在處理過程中使用優化器,所以我可以嘗試編寫一個「優化器插件」,而不必添加所有的邏輯'onBuildRead/write'。仍然。謝謝! – frequent 2013-05-13 07:03:35

+0

仍然沒有找到一個很好的鉤子,所以我會檢查現在,因爲信息是正確的。感謝您的幫助! – frequent 2013-05-21 09:04:18