importStyle 讨论 #604

Closed
lepture opened this Issue Mar 20, 2013 · 11 comments

Comments

Projects
None yet
5 participants
Member

lepture commented Mar 20, 2013

目前 css 转 js 调用 importStyle 这个函数,这里讨论 importStyle 放在哪里。

  • 方案 1:importStyle 在 seajs 上:#595

    该方案的弊端是与 seajs 绑定太紧

  • 方案 2:importStyle 这个函数直接打在包里,例如:

    define('id', [], function() {
        function importStyle(code, id) { .... }
        importStyle(....)
    })

    该方案的弊端是将会多处重复定义 importStyle

  • 方案 3:单独写一个模块,这个模块提供 importStyle 方法:

    define('id', ['css2js'], function(...) {
        var importStyle = require('css2js')
        importStyle(....)
    })
  • 方案 4:用户自己定义一个全局函数 __importStyle__,例如用户可以在页头定义 __importStyle__ = seajs.importStyle

Member

leoner commented Mar 20, 2013

还是支持方案2。
优点就是对于用户相对比较透明,缺点就是浪费了一些空间,但是这点应该可以接受

3,4 都需要用户参与,感觉不太好。

Owner

afc163 commented Mar 20, 2013

1

Owner

lifesinger commented Mar 20, 2013

方案 2 的问题是,importStyle 方法自身的维护,比如现在给 importStyle 添加了 style 数量溢出检测,以后可能还会添加其他方法。方案 2 很难做到统一更新,很麻烦。

方案 1 最现实

方案 4 是完美主义情结,让 CMD 模块与 seajs 自身解耦。

我选方案 1

Member

leoner commented Mar 20, 2013

3和4不太好,如果可以在 seajs 里面实现的话,那还是 1确实最现实。

Member

lepture commented Mar 20, 2013

方案 4 的最大特点是去 seajs 化。

@leoner 方案 4 并没有增加使用难度。

@lepture lepture pushed a commit to spmjs/grunt-cmd-transport that referenced this issue Mar 20, 2013

Hsiaoming Yang use seajs.importStyle. seajs/seajs#604 5be5d7d
Owner

popomore commented Mar 20, 2013

我也支持 1,但 1 也存在一些问题

seajs 2.0 的 importStyle 为一个插件,使用时略有成本,也就是说使用 spm 打包 css 必须要使用这个插件。而原来是一体的则不会有这个问题。

Owner

lifesinger commented Mar 20, 2013

这个插件是 plugin-style.js
可以和 plugin-combo 一样,在页头统一引入就好,然后什么都不用管,自动有了 seajs.importStyle 方法

2013/3/20 Haoliang Gao notifications@github.com

我也支持 1,但 1 也存在一些问题

seajs 2.0 的 importStyle 为一个插件,使用时略有成本,也就是说使用 spm 打包 css
必须要使用这个插件。而原来是一体的则不会有这个问题。


Reply to this email directly or view it on GitHubhttps://github.com/seajs/seajs/issues/604#issuecomment-15157726
.

王保平 / 玉伯(射雕)
送人玫瑰手有余香

Owner

popomore commented Mar 20, 2013

我的意思是单独使用 arale 的情况下,公司内是没啥问题

发自我的 iPhone

在 2013-3-20,下午2:06,lifesinger notifications@github.com 写道:

这个插件是 plugin-style.js
可以和 plugin-combo 一样,在页头统一引入就好,然后什么都不用管,自动有了 seajs.importStyle 方法

2013/3/20 Haoliang Gao notifications@github.com

我也支持 1,但 1 也存在一些问题

seajs 2.0 的 importStyle 为一个插件,使用时略有成本,也就是说使用 spm 打包 css
必须要使用这个插件。而原来是一体的则不会有这个问题。


Reply to this email directly or view it on GitHub<
https://github.com/seajs/seajs/issues/604#issuecomment-15157726>
.

王保平 / 玉伯(射雕)
送人玫瑰手有余香


Reply to this email directly or view it on
GitHubhttps://github.com/seajs/seajs/issues/604#issuecomment-15159867
.

Owner

afc163 commented Mar 20, 2013

@popomore 这个和 plugin-text 是同样的情况。

Owner

popomore commented Mar 20, 2013

@afc163 恩,不过现在 plugin-text 在编译后的环境不会使用的。

Member

lepture commented Mar 20, 2013

已定方案 1.

lepture closed this Mar 20, 2013

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment