【问题标题】:How to avoid multiple helper implementations like __indexOf() with grunt-contrib-coffee如何使用 grunt-contrib-coffee 避免多个帮助器实现,例如 __indexOf()
【发布时间】:2013-02-16 09:13:15
【问题描述】:

我有一个Gruntfile.coffee,它的grunt-contrib-coffee 配置如下:

coffee:
  compile:
    files:
      'public/assets/application.js': [
          'multiple/files' #, ...
      ]
    options:
      bare: true

问题在于,它会生成多个辅助方法的实现,例如

    var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };

如何让它识别出这些实现已经编译了?

更新 1

原因很明显是编译后的 JavaScript 在编译后 被连接起来。如果将 CoffeeScript 连接编译它是可以避免的。如果这不是我缺少的 grunt-contrib-coffee 的配置选项,我将在 github 上提交问题。

那么剩下的问题是:如何在编译之前连接 CoffeeScript,以避免多个帮助器实现?

更新 2

有一种解决方法,它涉及使用concat 任务手动连接源文件。这需要一个临时文件,然后可以将其从 CoffeeScript 编译为 JavaScript。在issue I created中有提到。

将来,任务将能够将它们的东西作为缓冲区传递给彼此(参见issue)。

【问题讨论】:

    标签: javascript coffeescript gruntjs


    【解决方案1】:

    从 grunt-contrib-coffee-0.6.1 开始,这适用于 join 选项:

    coffee:
      compile:
        files:
          'public/assets/application.js': [
              'multiple/files' #, ...
          ]
        options:
          bare: true
          join: true # concatenate coffee files before compiling. default is false
    

    【讨论】:

      猜你喜欢
      • 2015-06-13
      • 2014-02-25
      • 2013-02-11
      • 2013-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 2013-04-28
      相关资源
      最近更新 更多