Open zombieyang opened 9 years ago
目前我自己定位到的问题所在是 在grunt-cmd-transport/tasks/lib/script.js 179行里使用map方法过滤掉了所有依赖的.js后缀名,之后205行通过appendext补回后缀名,但appendext方法中误将.b当成了真正的后缀名,因此这个文件就没有被补回,于是它的依赖就没有被递归搜集到。 我接触seajs并不是很久,还不是很理解这个去掉再补上的缘由。所以我目前先自己暂时强制 +='.js'处理了
我也遇到了这样的情况,在开发环境中,我使用seajs-text来加载.tpl文件,但在生产环境中,没有使用seajs-text, 而使用.tpl.js把模板当模块加载(因为使用了不支持跨域的静态资源服务器),这样的情况下,transport解析出来的依赖把模板丢失了。建议增加当非.js文件a.b不存在时,对a.b.js的检测
@lepture 我也遇到 文件名有’.'会丢掉依赖
@popomore @lifesinger @lepture @afc163 我也遇到了这个问题,文件名是a.b.js,依赖老是提取不到,换成a.js,就可以提取了,能修复下这个bug吗
@xhxno36 已经有人处理过了,搜下替换下就可以避免这个问题
@liupeng110112 在哪里,是按照他说的方法改吗?@xosuperpig
@xhxno36 http://life.leanote.com/post/grunt-cmd-transport-deps-bugs 看下这个 覆盖下试试
呃,可能标题描述得有点绕。 大概就是 a.js依赖b.js b.js依赖c.js
正常情况下,transport这三个模块时,a模块会被转化为 require('a', ['b', 'c'] ....) 但是假如b.js的文件名中含有另一个".",例如命名为 "b.b.js"时,a模块就只会被转化为require('a', ['b.b'] ...)。因此,concat配合transport使用时,也就不会把c.js也合并进去。
这是否是一个BUG?
https://github.com/xosuperpig/seajs-learning 这是我的测试代码。 执行grunt,会输出with.js和without.js,对应src_withpoint和src_withoutpoint里的代码