Require() 'файл CoffeeScript из файла JavaScript или REPL
Я использую Node.js и хочу включить CoffeeScript в свой рабочий процесс. У меня есть два варианта использования:
- Я хочу, чтобы иметь возможность писать файлы JavaScript, которые
require()
Модули CoffeeScript
- Я хочу иметь возможность загружать модули CoffeeScript из node REPL
Для случая № 1: Я могу просто скомпилировать из .coffee
в .js
и require()
модуль .js
в качестве обходного пути.
Для случая №2: Сейчас я eval()
выводящий результат coffee-script.compile()
.
Есть ли лучший, более унифицированный способ сделать это?
Ответы
Ответ 1
Модуль кофе script регистрирует свое расширение, если требуется.
$ echo 'console.log "works"' > module.coffee
$ echo '
> require("coffee-script")
> require("./module")
> ' > test.js
$ node test.js
works
$ node
> require('coffee-script'); require('./module')
works
{}
Изменить. Это изменение изменилось с учетом использования CoffeeScript 1.7.0. Теперь вам нужно сделать:
require('coffee-script/register');
Ответ 2
Более универсальным решением было бы использовать better-require.
npm install better-require
Он позволяет вам require()
файлы CoffeeScript, не требуется предварительная компиляция. (Он также позволяет вам require()
связывать другие форматы файлов: CoffeeScript, clojurescript, yaml, xml и т.д.)
В случае CoffeeScript для этого просто требуется модуль coffee-script
.
require('better-require')();
var myModule = require('./mymodule.coffee');
var clojurescriptModule = require('./mymodule.cljs');
// etc.
Раскрытие: Я написал better-require
.