@President42

Как заставить grunt-contrib-coffee компилировать по-человечески?

Почему-то grunt-contrib-coffee компилирует следующий CoffeeScript код:
f = () ->
    alert()
    return

в такой JavaScript:
(function() {
    var f;

    f = function () {
        alert();
    }
}).call(this);

Зачем всё засовывается в анонимную функцию - непонятно. Получается, что в глобальном пространстве имён функции f нет. При этом, когда я использовал плагин для автокомпиляции CoffeeScript в Brackets, всё компилировалось нормально. Как заставить grunt-contrib-coffee тоже нормально компилировать?

Вот фрагмент Gruntfile.js:
coffee: {
    compile: {
        files: [{
            cwd: 'src/scripts',
            src: '**/*.coffee',
            dest: 'result/scripts',
            expand: true,
            flatten: true,
            ext: '.js',
        }]
    },
},
coffeelint: {
    app: {
        src: "src/coffee/*.coffee",
    },
    no_tabs: {
        level: "ignore"
    },
    indentation: {
        level: "warn"
    },
    no_trailing_whitespace: {
        level: "error"
    },
    no_trailing_semicolons: {
        level: "error"
    },
    no_plusplus: {
        level: "warn"
    },
    no_implicit_parens: {
        level: "ignore"
    },
    max_line_length: {
        level: "ignore"
    },
},
  • Вопрос задан
  • 2356 просмотров
Решения вопроса 1
delch
@delch
Frontend developer
Документацию читать не пробовали ?
bare
Type: boolean
Compile the JavaScript without the top-level function safety wrapper.

Следовательно где то в опции засунуть:
options: {
bare: false
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы