1

我在我的电脑上克隆了 angular-bunch-seed https://github.com/scotch/angular-brunch-seed

我想将breezejs 添加到我的项目 http://learn.breezejs.com/

我将微风库复制到我的供应商文件夹 /vendor/breeze/

然后我更改了 config.coffee 文件如下:

exports.config =
  # See docs at http://brunch.readthedocs.org/en/latest/config.html.
  conventions:
    ignored: /(^vendor\/.*\.less$)|(^|\/)node_modules\/|(^|\/)_/
    assets: /^app\/assets\//
  modules:
    definition: false
    wrapper: false
  paths:
    public: '_public'
  files:
    javascripts:
      joinTo:
        'js/app.js': /^app/
        'js/vendor.js': /^vendor/
        'test/scenarios.js': /^test(\/|\\)e2e/
      order:
        before: [
          'vendor/console-polyfill/index.js'
          'vendor/jquery/jquery.js'
          'vendor/breeze/breeze.debug.js'
          'vendor/breeze/q.js'
          'vendor/angular/angular.js'
          'vendor/angular-resource/angular-resource.js'
          'vendor/angular-cookies/angular-cookies.js'
          'vendor/angular-sanitize/angular-sanitize.js'
          'vendor/bootstrap/docs/assets/js/bootstrap.js'
        ]

    stylesheets:
      joinTo:
        'css/app.css': /^(app|vendor)/
      order:
        before: [
          'app/styles/app.less'
        ]

    templates:
      joinTo: 
        'js/dontUseMe' : /^app/ # dirty hack for Jade compiling.

  plugins:
    jade:
      pretty: yes # Adds pretty-indentation whitespaces to output (false by default)
    jade_angular:
      modules_folder: 'partials'
      locals: {}

    bower:
      extend:
        "bootstrap" : 'vendor/bootstrap/docs/assets/js/bootstrap.js'
        "angular-mocks": []
        "styles": []
      asserts:
        "img" : /bootstrap(\\|\/)img/
        "font": /font-awesome(\\|\/)font/


  # Enable or disable minifying of result js / css files.
  # minify: true

当我执行早午餐构建时,检查 vendor.js 文件.. 不包括微风库!我错过了什么?

PS:当我从构建文件中删除 angular.js 时,它已正确删除。

4

2 回答 2

1

嗯,答案有简单和复杂的子部分。

最简单的部分:为什么它不起作用。 angular-brunch-seed使用bower-brunch包,它在内部检查供应商库中的component.json文件。这意味着,如果您没有使用bower下载库,或者将所需的component.json放在库的根目录(并在根component.json中提及),它将不会被识别为正确的供应商库并在config.coffee的joinTo则表达式。

这个config.coffee文件的order部分只管理你的库在生成的vendor.js文件中的放置顺序;如果该库事先被忽略,则订单行没有影响。

棘手的部分:轻松进入您的供应商库。干净的方法应该是使用 bower 下载它。问题是,正如您可能已经猜到的那样,到目前为止,还没有针对微风的凉亭包。

[victor@M]<~> bower search breeze
No results
[victor@M]<~> bower search | \grep breeze
No results

这意味着您必须自己创建它。如bower docs中所述,您必须以某个名称(例如bower-breeze )将 bower 最终库文件(而不是源代码)和component.json打包到 git 端点(例如 github)中并注册它凉亭使用. 看看有角的家伙做了什么,以获得灵感。您还必须在该存储库中包含semver标记以匹配基本库的版本。或者,您可以在微风的 github 上打开一个问题,并要求将一个component.json包含在他们的存储库中(或者更好的是,编写它并提交一个拉取请求)。bower register

最后一个措施,您可以尝试在您的供应商目录中编写component.json并检查它是否仍然被忽略,但我没有对此进行测试。可以工作(但这是一个黑客)也许你至少必须在 angular-brunch-seed 的根component.json中添加一个提及它(带有版本信息)

总而言之,角早午餐种子是一个棘手的野兽......

于 2013-04-14T05:17:04.840 回答
0

我遵循了您的建议,并向 Breeze 团队发送了拉取请求。拉取请求被接受后,如果他们还没有完成,我将把回购交给凉亭。

现在我在 ./vendor/breeze 文件夹中创建了一个 component.json 文件

{
  "name": "breeze",
  "version": "1.2.9",
  "main": "./breeze.debug.js",
  "dependencies": {},
  "gitHead": "0b0891a13d0023bbfdf91785bd99ac5a416bf9c7",
  "_id": "BreezeS@1.2.9",
  "readme": "ERROR: No README.md file found!",
  "description": "ERROR: No README.md file found!",
  "repository": {
    "type": "git",
    "url": "git://github.com/IdeaBlade/Breeze.git"
  }
}

gitHead 是随机的.. 但无论如何,当我运行 brunch build 时,我终于可以看到 vendor.js 中包含的微风!多谢

于 2013-04-15T05:50:10.567 回答