【问题标题】:Separating app and vendor css in Brunch在早午餐中分离应用程序和供应商 css
【发布时间】:2013-09-26 20:56:57
【问题描述】:

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

错误:无法加载配置 /path-to-root/config.coffee。语法错误:意外 { 在 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。

【问题讨论】:

    标签: brunch


    【解决方案1】:

    这很奇怪,但我必须为同一案例执行以下操作(在末尾添加 /)

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

    【讨论】:

    • 我的正则表达式没问题。对我来说,问题是文件中的隐藏字符(或者至少我是这样认为的),因为我现在有基本相同的文件,但它不会给我一个错误。
    【解决方案2】:

    我很困惑,但我认为 Paul 关于文件中可能有一个特殊字符的建议似乎很可能。我现在让它使用的配置似乎与之前不工作的配置相同。这是完整的配置文件:

    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), '_'
    

    【讨论】:

      【解决方案3】:

      我和肯有同样的问题。为我解决的只是从config.coffeefile 中删除有问题的行,然后从头开始重新输入它们。这样可以确保不存在隐藏字符并使脚本再次运行。

      【讨论】:

        猜你喜欢
        • 2017-09-29
        • 2023-03-27
        • 2016-11-19
        • 2015-07-07
        • 1970-01-01
        • 2018-08-27
        • 2015-04-04
        • 1970-01-01
        • 2014-05-14
        相关资源
        最近更新 更多