1
xhslyf OP 又或者说,这几个全站通用的函数也封装成独立的模块 .js 文件,然后使用的时候在 main 中 require 进来,构建时合并?
然后 seajs.use 入口就只有一个 main ,彻底不要 base 。虽然会有重复代码,但应该不会太多…… |
2
chemzqm 2013-05-06 22:24:14 +08:00
使用Seajs官方的spm https://github.com/spmjs/spm 来打包吧, 可以指定规则。
或者把你的公共函数都放到一个全局变量(或者叫命名空间)下面,然后把它用script标签引入页面就行了。 我个人反对为了模块化而模块化,绝大部分网站不会像支付宝的前端那么复杂,没有必要打包的代码放到全局将来维护也会更容易些。 |
3
libo 2013-05-07 10:36:09 +08:00
打包规则中默认是打包相对路径的模块的,如果你的base是通用的,建议在sea-config.js中配置一个alias (配合合理的文件夹及文件放置),比如: alias:{"base","path/to/base.js"} 这样你在使用时直接使用require("base")就可以了,打包时他就不会打包这个文件了
|
4
xhslyf OP |
5
chemzqm 2013-05-13 17:42:17 +08:00
看了下你的demo,很明显问题在与grunt-cmd-transport这个工具不支持复杂打包方式,我个人觉得如果公共部分不太复杂用script标签可以接受,如果你一定要统一依赖关系的话还是用官方的spm吧
https://github.com/spmjs/spm2, 类似seajs的问题建议你加入 seajs@googlegroups.com 邮件列表在邮件里面提,会很快得到答复的。 |