etaoux / brix

Build site with bricks
http://etaoux.github.com/brix
MIT License
124 stars 49 forks source link

请不要在各个组件的 JS 里面直接 require css 文件 #30

Closed huacnlee closed 12 years ago

huacnlee commented 12 years ago

我们不能将前端架构的事情也一并搞了,你无法预计组件使用者如何来分布他们的 JS, CSS 部署结构 作为一个基础组件,我们应当保持原生态, CSS 和 JS 如何安放应当由组件使用者自己来决定。

以面包屑为例:

KISSY.add("brix/gallery/breadcrumbs/index",function(a,b){
    function c(){
        c.superclass.constructor.apply(this,arguments)
    }
    return c.ATTRS={},
    a.extend(c,b,{}),c},
    {requires:["brix/core/brick","./breadcrumbs.css"]}
);

在这里 requires [breadcrumbs.css] 不太合理,这么做意味着所有的项目都得按照 Brix 这样的目录结构来布置 (我不认为这是一个好的方式)。

如果想将所有的 CSS 和 JS 分别打包成一个 brix-all.js 和 brix-all.css 就不行了(实际上,我们就应该提供一个完整的打包文件)

cyjake commented 12 years ago

@keyapril 同学已经将所有样式 require 去掉,改由实际项目自己处理样式依赖。

原本是在组件代码中写明比较合适,但 KISSY 1.2 的 map 对样式的 combo 支持得不好(?存疑,请了解的同学解释一下)

yiminghe commented 12 years ago

通用组件样式确实不应该放在 require 写死,不好定制了。

业务组件可以写,关于 1.2 支持貌似没问题啊,不过最好不要通过 map 配置 combo, 1.3 会有新的 loader 支持 combo 的

cyjake commented 12 years ago

@yiminghe 我没在项目中实际用过哈哈,昨天阿大 @zhj3618 说的通用组件的样式写在组件模块依赖里可以让样式依赖清楚一些,我觉得有些道理。

自成在做 Rails 项目中使用 Brix 的工作,因为 Rails 框架提供了 Asset Pipeline 来管理样式压缩和打包,所以代码中写样式显得冗余并且难维护。 @huacnlee 对吧?

让样式依赖清楚些,或者可以把依赖放到 package.json 里头去,加个属性用来说明? @limu 是否?

huacnlee commented 12 years ago

是的,反正不管怎么着,不要在 JS 里面写死 CSS 的引用就好了