Подтвердить что ты не робот

Require() 'файл CoffeeScript из файла JavaScript или REPL

Я использую Node.js и хочу включить CoffeeScript в свой рабочий процесс. У меня есть два варианта использования:

  • Я хочу, чтобы иметь возможность писать файлы JavaScript, которые require() Модули CoffeeScript
  • Я хочу иметь возможность загружать модули CoffeeScript из node REPL

Для случая № 1: Я могу просто скомпилировать из .coffee в .js и require() модуль .js в качестве обходного пути.

Для случая №2: Сейчас я eval() выводящий результат coffee-script.compile().

Есть ли лучший, более унифицированный способ сделать это?

4b9b3361

Ответ 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.