在Brunch中分离app和vendor css

时间:2013-09-21 15:15:30

标签: brunch

My Brunch模板将我的所有代码编译成app.js,将所有第三方依赖项编译为vendor.js(一种非常标准的方法)。我想用CSS做同样的事情它曾经工作但是当我转向使用Bower时停止工作的东西我现在得到以下错误:

  

错误:无法加载config /path-to-root/config.coffee。 SyntaxError:unexpected {       at Object.exports.loadConfig(/usr/local/share/npm/lib/node_modules/brunch/lib/helpers.js:448:15)

来自配置文件(config.cofee),如下所示:

files:
    javascripts:
      joinTo: 
        'javascripts/app.js': /^app/
        'javascripts/vendor.js': /^(bower_components|vendor)/
        'test/javascripts/test-vendor.js': /^test(\/|\\)(?=vendor)/

    stylesheets:
      joinTo:
        'stylesheets/app.css': /^app/
        'stylesheets/vendor.css': /^(bower_components|vendor)/

如果我只是去掉样式表的两行并将这一行放在它的位置,那么它可以正常工作:

  

'stylesheets / vendor.css':/ ^(app | bower_components | vendor)/

我一直与此生活在一起,但这引起了越来越多的问题,我想把它排序。任何帮助将不胜感激。

如果出现问题......我正在使用的早午餐版本是1.7.6。

3 个答案:

答案 0 :(得分:4)

我感到困惑,但我认为保罗的建议似乎可能是一个特殊角色进入文件。我现在使用的配置似乎与之前没有工作的配置相同。这是完整的配置文件:

sysPath = require 'path'

exports.config =
  # See http://brunch.io/#documentation for documentation.
  files:
    javascripts:
      joinTo:
        'javascripts/app.js': /^app/
        'javascripts/vendor.js': /^(bower_components|vendor)/
        'test/javascripts/test-vendor.js': /^test(\/|\\)(?=vendor)/

    stylesheets:
      joinTo: 
        'stylesheets/app.css': /^app/
        'stylesheets/vendor.css': /^(bower_components|vendor)/

    templates:
      precompile: true
      root: 'templates'
      joinTo: 'javascripts/app.js' : /^app/

      modules:
        addSourceURLs: true

  # allow _ prefixed templates so partials work
  conventions:
    ignored: (path) ->
      startsWith = (string, substring) ->
        string.indexOf(substring, 0) is 0
      sep = sysPath.sep
      if path.indexOf("app#{sep}templates#{sep}") is 0
        false
      else
        startsWith sysPath.basename(path), '_'

答案 1 :(得分:2)

这很奇怪,但我必须做同样的情况下的(添加/结尾)

stylesheets: {
    joinTo: {
        'css/vendor.css': /^(vendor|bower_components)\//,
        'css/styles.css': /^app\/css\//
    }
}

答案 2 :(得分:1)

我和肯有同样的问题。解决这个问题的方法就是从config.coffee文件中删除有问题的行,只需从头开始重新输入。这样可以确保不存在任何隐藏字符并使脚本再次运行。