Есть ли способ запустить CoffeeScript в терминале? - PullRequest
4 голосов
/ 24 ноября 2011

Поскольку мы можем запускать JavaScript с использованием различных интерпретаторов, таких как V8 или Rhino, я подумал, что должен быть способ запуска кода CoffeeScript внутри терминала.

Технически, я могу сделать это, используя Node.js во время работы javascript, но мне любопытно, есть ли отдельный интерпретатор, специально разработанный для CoffeeScript.

Ответы [ 6 ]

9 голосов
/ 24 ноября 2011

Что не так с простой установкой и запуском интерпретатора, который поставляется с самим CoffeeScript?

Прочтите руководство по установке здесь: http://jashkenas.github.com/coffee-script/#installation

А затем используйте это так:

enter image description here

Или я пропускаю какое-то измерение вашего вопроса?

5 голосов
/ 24 ноября 2011

Нет.Вы можете запустить файл coffeescript с coffee filename, но это просто скомпилирует файл coffeescript в оперативной памяти и запустит его как javascript.Ну, на самом деле кто-то действительно написал интерпретатор для coffeescript, но этот интерпретатор написан на javascript или coffeescript или около того и поэтому должен также работать внутри движка JS.Кроме того, он медленный, потому что это интерпретатор, а не JIT-компилятор.

Как я уже сказал, просто используйте команду coffee.

4 голосов
/ 24 ноября 2011

Насколько мне известно, только один интерпретатор CoffeeScript не компилирует его в JavaScript: Поэтика .

Он написан на чистом Ruby и запускает код CoffeeScript непосредственно на виртуальной машине Rubinius. Тем не менее, он не обновлялся с мая и далеко не идентичен официальной реализации CoffeeScript.

3 голосов
/ 15 февраля 2012

Если вы не хотите запускать скрипт с помощью команды coffee, вы всегда можете добавить хеш-бэнг в начало скрипта:

#!/usr/local/bin/coffee

, если для файла установлено значениебыть исполняемым (chmod +x foo.coffee), теперь вы можете запустить его без указания команды coffee в вашем терминале:

$ ./foo.coffee
2 голосов
/ 06 ноября 2014

Вы не можете использовать coffee как интерпретатор сценария напрямую, потому что это уже сценарий.Но вы можете исправить это, написав простую оболочку C:

#include <unistd.h>

int main(int argc, char *argv[]) {
    execvp("coffee", argv);
}

Скомпилируйте это и поместите в вашу PATH где-нибудь (я назвал это klatsh), а затем поместите #!/usr/bin/env klatsh (или как вы это называли)) на вершине ваших сценариев, и все готово.

1 голос
/ 13 июля 2015

Да, просто используйте:

$ coffee test.coffee 
Output from coffee!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...