如何控制Meteor中CSS的捆绑顺序?

时间:2015-06-05 10:17:33

标签: meteor

我安装了Bootstrap软件包,并提供了一个自定义模板,为我提供了大约10个其他CSS文件。

当我将所有CSS文件放入client/styles Meteor捆绑包并缩小所有CSS时,这很不错。

但捆绑/加载顺序非常重要。因为,你知道,他们是级联

Meteor在client中为CSS文件采取的捆绑订单是什么?

控制它的唯一方法是用数字重命名我的所有样式表文件吗?

100-my_style_that_overwrites_some_bootstrap_defaults.css
110-some_other_styles.css
120-lol.css

然后CSS捆绑的顺序是:

1. bootstrap.css from the bootstrap package
2. 100-my...
3. 110-some...
4. 120-lol...

有更优雅的实用方法吗?

1 个答案:

答案 0 :(得分:5)

根据文件加载顺序对CSS进行排序(从Meteor文档略微调整以仅考虑CSS文件):

  

有几种加载顺序规则。它们按顺序应用   在给定的优先级中,应用程序中的所有适用文件   下面:

     
      
  1. 以main开头的文件。最后加载
  2.   
  3. 下一个
  4. 加载任何lib /目录中的文件   
  5. 接下来加载具有更深路径的文件
  6.   
  7. 然后按整个路径的字母顺序加载文件
  8.   

您可以先将要加载的文件放在lib目录中,或使用问题中的文件命名约定。

对于完全粒度控制,您必须创建一个包,并且可以明确定义css文件的加载方式。

  1. 创建一个包:
  2. 在Meteor项目目录中

    meteor create --package styles
    
    1. packages/styles目录中,您将有一个package.js文件,您可以在其中明确定义加载顺序。
    2. 将css文件移动到/packages/styles目录后,您可以使用Package.onUse方法中定义的顺序:

      api.addFiles([
          'bootstrap.css',
          '100-my...css',
          '110-some...css',
          '120-lol.css'
      ], 'client');
      

      请注意,您可能会认为此约定很尴尬但如果您想在应用中轻松更换主题,则可以提供帮助,您可以轻松删除该包并添加其他内容。

      最后将包添加到您的应用中,或者让您的应用确认:

      meteor add styles