seajs/seajs-text

seajs.reslove输出不正确

atian25 opened this issue · 2 comments

加载seajs-text插件后

require.async(url, function(module){
  console.debug('loaded template `%s` from %s', url, seajs.resolve(url));
})

输出:

loaded template category/category.tpl.html from http://localhost:9000/app/modules/category/category.tpl.html.js

后面多了.js

require.async(url) 获取的 uri 是 http://localhost:9000/app/modules/category/category.tpl.html 的, 而 seajs.resolve(url) 是多了 .js .

是因为 seajs.resolve(url) 和 require.async(url)/seajs.use(url) 的路径解析不太一样. seajs-text.js 插件对 .tpl/.html 有在字符串最后加 # , 这样在解析时不会自动加 .js 后缀, 这步在 seajs.resolve 中没有...

@lifesinger 源码中 https://github.com/seajs/seajs/blob/master/src/module.js#L400 是否要改成 seajs.resolve = Module.resolve

seajs.resolve 是比较纯粹的,修改成 Module.resolve 会带来一些隐患。这个暂不修改。