require () с помощью файла CoffeeScript из файла JavaScript или REPL - PullRequest
53 голосов
/ 22 января 2011

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

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

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

Для случая № 2: Прямо сейчас я eval() выводю coffee-script.compile().

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

Ответы [ 2 ]

94 голосов
/ 22 января 2011

Модуль coffee-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');
12 голосов
/ 01 ноября 2012

Более универсальным решением было бы использовать лучше-требовать .

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.

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