全局配置main.js:
var version = +new Date(); require.config({ urlArgs: 'v=' + version, // 根路徑設置,paths下面全部都是根據baseUrl的路徑去設置 baseUrl: '../addons/ewei_shopv2/static/js/app/', paths: { // 引入文件的路徑 'jquery': '../dist/jquery/jquery-1.11.1.min', 'jquery.gcjs': '../dist/jquery/jquery.gcjs', 'Rx':'../dist/Rx/Rx.min', 'bridgeSelf':'../dist/bridge/bridge_self', 'clipboard':'../dist/clipboard.min' }, // 用來配置不兼容的模塊,意思是:該模塊沒有module.exports, // jquery就有module.exports輸出值 shim: { 'foxui':{ //foxui需要依賴jquery,所以得加deps deps:['jquery'] }, }, //map"告訴RequireJS在任何模塊之前,都先載入這個模塊 waitSeconds: 0 });
自定義模塊:
dist/moduleA.js define(function() { var modal = {}; modal.init = function(){ console.log('我是一個獨立的模塊A'); } return modal; }); dist/moduleB.js define(function() { var modal = {}; modal.init = function(){ console.log('我是一個獨立的模塊B'); } return modal; }); dist/moduleC.js define(['dist/moduleA','dist/moduleB'], function(moduleA,moduleB) { var modal = {}; modal.init = function(){ console.log('我是引用了moduleA和moduleB的模塊C'); moduleA.init(); //我是一個獨立的模塊A moduleB.init(); //我是一個獨立的模塊B } return modal; });

使用:
<!--先引入require.js--> <script src="js/plugin/require.js"></script> <!--再引入全局配置--> <script src="js/main.js"></script> <script> //用require引入要引入的模塊,[]:已經在main.js里面的Paths設置好了的可以直接引用名稱,例如jquery和Rx //function(),小括號里面對應[]里面值,按順序在()給變量名 require(['jquery','Rx','dist/moduleC'],function ($,'Rx','moduleC') { moduleC.init(); /*moduleC.init()運行結果*/ //我是引用了moduleA和moduleB的模塊C //我是一個獨立的模塊A //我是一個獨立的模塊B console.log($('.rechargeInput').val()); // jquery方法 Rx.Observable.fromEvent($('#rechargeInput'), 'input'); //rxjs方法 }) </script>
