1

我有一个 brunch config.coffee 文件,~/lens/v其中包括以下几行:

  files:
    javascripts:
      defaultExtension: 'coffee'
      joinTo:
        'javascripts/app.js': /^app/

Brunch 获取位于 /app 目录根目录的扩展名为 .js 的文件,并将它们连接到 app.js 中——但它不会连接位于 /app 子目录中的文件。

具体来说,我正在尝试将早午餐添加到位于以下位置的咖啡脚本文件中~/lens/v/app/assets

~/lens/v/app/assets$ cat r.coffee 
d3.select("body").style("background-color", "black");

我能够像这样构建项目

~/lens/v$brunch b

但是当我在 app.js 文件中搜索“d3”时,我找不到它。由于某种原因,JS 没有被连接起来。

grep -r "d3" app.js //returns nothing

配置文件中的这一行javascripts/app.js': /^app/应该将 /app 中的任何 javascript 文件连接到 app.js。但这并没有发生。当我将 javascript 文件的扩展名更改为 .js(从 .coffee)时,我得到了相同的行为。

我可以采取哪些步骤来调试它?

4

2 回答 2

1

问题是早午餐对资产有特殊处理。它们的处理方式与您希望编译的文件不同 - 按原样复制到您的公共目录中。

解决您所描述的问题的最简单方法是将咖啡脚本移到app.assets

或者,您可以在 brunch 配置中重新配置被视为资产的内容conventions.assetshttps://github.com/brunch/brunch/blob/stable/docs/config.md#conventions

于 2014-01-24T21:54:15.920 回答
0

几天前我问了这个完全相同的问题,并在这里回答:

如何编译资产目录中的单个 CoffeeScript 文件?

如果您想将这些文件保存在 assets/ 中,我的解决方案是使用 After-Brunch 插件并手动转换它们,如我在上面的链接中所示。

否则,将它们移出 assets/,并使用我首先链接到的 coffeescript 插件。

于 2014-01-24T16:46:20.850 回答