javascript - fis3 構建 模塊加載調用問題,index.js不能加載模塊zepto.js,也沒有錯誤報警,
問題描述
關于模塊化編程本人純小白,希望各位大神指點指點在我的index.html中index.js要調用component組件中的zepto.js,但并不能正常調用,也沒有任何報警錯誤;
index.js源碼代碼如下:
用fis3 發布到測試機上后,index.js變成了:
在這個代碼里面define(’static/index/index’,funcion(...){},這個function把源碼內容全部包裹進去,就無法正常運行,如果去掉這個define的外面函數,就能正常作用。但問題是為什么它會自動生成,并且我該如何編寫index.js,才不會出現問題;
問題解答
回答1:zepto默認庫并沒有包含AMD模塊,也就是說,并不能用AMD加載。如果用requirejs加載的話,你要把它寫到shim里,這里丟個我以前寫的config:
require.config({ paths: {’zepto’: ’zepto.min’,’weixin’: ’//res.wx.qq.com/open/js/jweixin-1.2.0’,’vconsole’: ’vconsole.min’ }, shim: {’zepto’: { exports: ’$’} }});
不過我并沒解決為啥 build zepto 模塊的時候帶上AMD模塊也不行(有可能是編譯出來的庫不合規或者是zepto的AMD這塊本身有的問題?)……可以說這是個比較懶的解決方案吧。
另外,Fis我沒用過,但用requirejs的時候我一般都是在HTML里用一個script標簽解決問題,比如:
<script data-main=’js/main.js’ src='http://www.aoyou183.cn/wenda/js/require.min.js'></script>
然后把require都寫到main.js里就好。
補充個zepto構建地址。
