-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
目录结构和模块的一些思考 #11
Comments
Hi! Look this BEM filesystem ;) |
@voischev Thanks.Let me try. |
This was referenced Feb 25, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
以往的目录结构
�刚开始做项目的时候,只对css做了模块化,使用了sass,然后目录结构是这样的
后面页面多了,经常需要改头尾,也对html做了模块,引入了slim,目录结构是这样的
后面页面越来越多,需要对页面进行归类,目录结构变成这样
蛋疼了,目录层级越来越深,文件越来越难找了。再后来引入了svg,目录结构变成这样
symbols和sprites是我用gulp-svg-sprites生成的。东西越来越多,越来越分散,相同模块的东西越来越不好找了。
新的目录结构
新的目录结构以模块为基础,所有的东西都放在一起,目录结构如下
新的页面使用posthtml和postcss代替slim和sass。html的拼装使用了gulp-html-tag-include,只要把模块代码
<include>
进来。css使用了postcss-modules,css module可以用来自定义命名规则,所以不用命名空间了。
比如我们有一个
mixin.css
文件,style.css
可以这么调用有点类似sass的@extend,可以用来代替@extend和@mixin。
然后在gulp里面配置命名规则
编译完的mixins.css
对应的json文件
编译完的style.css
对应的json文件
js可以读对应的json文件,完成class的替换,比如这个例子。更详细的可以看这篇文章,中文翻译
这种方式使得组件有更好的兼容性,减少命名冲突的可能。有点类似web component,起到了隔离的作用。
最后就是打包了。gulpfile文件如下
再按需要添加
module
数组的内容。The text was updated successfully, but these errors were encountered: