[问题] RequireJS与r.js疑问

楼主: poopoo888888 (阿川)   2013-12-09 15:00:01
各位大大好
小弟之前没用过RequireJS与r.js
现在要maintain别人写的两个专案
两个都用了RequireJS并用r.js压缩
想要review他的code
发现两个专案的网页中 js都只有这行
<script data-main="/assets/javascript/main-built"
src="/assets/vendor/requirejs/require.js"></script>
可是main-built.js内全压缩成了一行 我无法开始review code
研究后发现是他用r.js压缩过
找到了app.build.js 发现里面长这样
({
baseUrl: ".",
name: "main",
out: "main-built.js",
mainConfigFile: "main.js",
preserveLicenseComments: false,
paths: {
jquery: "../vendor/jquery/jquery",
..........
},
shim: {
"../vendor/jquery.lazyload/jquery.lazyload.min": ['jquery'],
.......
小弟猜想 原始档是main.js
main-built.js只是压缩后的结果
于是小弟将这行
data-main="/assets/javascript/main-built"
改成
data-main="/assets/javascript/main
小弟以为r.js只是把原本包好的code全部找出来压缩
所以使用main-built跟main
除了performance之外 全都一样
结果 其中一个专案正常运作
另一个专案却是出现一大堆js读取问题
想请问为什么会这样呢??
我该从哪里开始review code呢??
可以给小弟一个研究方向吗
谢谢各位大大!
作者: TonyQ (自立而后立人。)   2013-02-09 15:10:00
照理说是要一样的,但是可能不幸的它没把 dependency 写好导致大家读取的有时间差你应该先找一个 js 出错的地方,然后去找那个 module 是不是漏了哪个 dependency 所以出现这个 error,然后想办法补上。前提是真的 main-built.js 是真的由 main.js build 的啦然后你可能要查一下有没有要另外设 config 的地方像是把build.js 里面一些 require 相关的 config 写到main去没有具体的情况很难判断就是了

Links booklink

Contact Us: admin [ a t ] ucptt.com