6

我正在开发一个用早午餐构建的应用程序。我想将一些供应商提供的 javascript 作为模块加载,这样我就可以require在我的代码中使用它们,而不是依赖全局变量。有没有办法做到这一点,而无需将所有供应商代码复制到我的app目录中?

我尝试创建一个vendorlib目录,但早午餐似乎在任何地方都找不到 buappvendor. 我也尝试创建一个vendor/modules目录,但早午餐似乎没有包装下找到的任何东西vendor(即使我说服它将这些文件与在 .下找到的其他模块的文件结合起来app。)

*我现在正在研究的“一些”是卓别林、骨干和下划线。如果我让这些工作,我稍后会移动更多。

4

2 回答 2

4

例如,您可以覆盖config.modules.wrapper并使其包装vendor/modules目录中的所有文件。或者,您可以将更多由 brunch 处理的目录添加到config.paths.watched.

于 2013-09-19T01:49:55.027 回答
2

对于那些在家里跟随的人来说,这就是我的 config.coffee 最终的样子:

  paths:
    watched: ['app','vendor','test','vendorlib']
  files:
    javascripts:
      joinTo:
        'javascripts/app.js': /^app/
        'javascripts/vendor.js': /^vendor/
        'test/javascripts/test.js': /^test[\\/](?!vendor)/
        'test/javascripts/test-vendor.js': /^test[\\/](?=vendor)/
      order:
        # Files in `vendor` directories are compiled before other files
        # even if they aren't specified in order.before.
        before: [
          'vendor/scripts/console-polyfill.js',
        ]
        after: [
          'test/vendor/scripts/test-helper.js'
        ]

    stylesheets:
      joinTo:
        'stylesheets/app.css': /^(app|vendor)/
        'test/stylesheets/test.css': /^test/
      order:
        after: ['vendor/styles/helpers.css']

    templates:
      joinTo: 'javascripts/app.js'

  modules:
    nameCleaner: (path) ->
      path.replace(/^(app|vendorlib)\//, '')

vendorlib这让我可以使用来自支持作为模块加载的供应商的模块填充一个目录。我目前有卓别林、jQuery 和 Backbone。我不得不重命名它们以不包括版本号。

于 2013-09-19T20:40:54.903 回答