【问题标题】:How can I compile individual CoffeeScript files in the assets directory?如何编译资产目录中的单个 CoffeeScript 文件?
【发布时间】:2014-01-25 00:43:24
【问题描述】:

我有一个在 Brunch.io 中构建的应用程序,它将主框架构建到 app.js 中,但在我的资产文件夹中,我有各种需要单独编译的小型 coffeescript 脚本,而不是合并为一个。

有没有办法先编译 CS,然后像 assets 中的其他所有内容一样将其移动到 public 文件夹?

我注意到有一些插件可以使用 Jade 模板执行此操作(因此您可以在资产文件夹中包含 .jade 文件)。这需要一个新插件吗?

如果没有明显的方法,是否至少有一种方法可以定义配置文件,以便它可以监视不同的文件夹并将每个 .coffee 文件编译为它自己的 .js 文件,而无需将它们全部连接在一起,还是需要在配置中指定每个文件?

【问题讨论】:

    标签: brunch


    【解决方案1】:

    由于没有答案,这是我最终这样做的(有点老套)方式:

    我安装了After-Brunch 插件并将这两个命令添加到我的配置文件中,这些命令在Brunch 每次编译后都会运行:

      plugins:
        afterBrunch: [
          'find public/ -type f -name "*.coffee" -delete'
          'coffee --compile --output public app/assets/'
        ]
    

    所以这只是明确地删除了早午餐移动到 public/ 的 .coffee 文件,然后编译 assets/ 中的所有 .coffee 文件并将它们移动到 public/。哈克,但它工作正常。

    这令人讨厌地感觉很倒退:编译那些 已经 由 Brunch 移​​动到 public/ 但 Coffee 没有的 .coffee 文件会感觉更干净(即使只是在我的脑海中)我知道没有就地转换选项(即替换文件),并首先在 public/ 中的文件上运行转换器,然后删除所有 *.coffee 文件不起作用,因为删除命令之前执行compile 命令已经完成...但是,这种区别可能只是在我的脑海中——这样做同样有效。

    如果有人有更类似早午餐的解决方案,那就太好了。

    【讨论】:

    • 您找到任何替代解决方案了吗?我需要一个类似的解决方案来编译服务器端咖啡文件。干杯:)
    • 这是迄今为止我发现的唯一解决方案——请注意,它工作正常,只是感觉很hacky。此外,仅当您需要单独的脚本文件时才需要这样做。如果您可以将它们全部编译在一起,那么常规的早午餐构建系统应该可以正常工作。
    • 我遇到了类似的问题,但在我的情况下,我需要编译 LESS 文件,而不是加入我的 app.css 包。感谢您的提示,我最终得到了: plugins: { afterBrunch: [ 'find public -type f -iname "*.less" -exec sh -c \'n="{}"; lessc ${n} ${n/%less/css}\' \\; -删除', ] },
    猜你喜欢
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-05-02
    • 1970-01-01
    • 2013-12-27
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多