Я понял, что можно было изначально использовать CoffeeScript вместо JavaScript, без компиляции файлов CoffeeScript на JavaScript (по крайней мере, не скомпилировать их как файлы; возможно, в памяти или в режиме on- fly сборник).Node.js, coffeescript и скомпилированные js-файлы
У меня есть основное приложение с главным app.coffee
файл следующим образом:
coffee = require 'coffee-script'
coffee = require 'coffee-script/register'
express = require 'express'
compression = require 'compression'
sockets = require 'socket.io'
http = require 'http'
server = http.createServer express
app = express()
# [...]
В моем package.json я следующее:
// ...
"dependencies": {
"coffee-script": "^1.9.3"
// ...
}
"scripts": {
"start": "coffee app.coffee --nodejs"
// ...
}
// ...
Я могу запустить приложение с помощью $> nodemon app.coffee
или $> coffee app.coffee
или $> npm start
В какой-то момент, когда я перезапустите приложение или сохраните файл CoffeeScript, файл CoffeeScript будет скомпилирован в файл JavaScript, и поэтому каждый файл в дереве папок будет дублироваться как в версии .js
, так и в версии .coffee
, что я нахожу довольно тревожным.
Также, когда есть файл .js
для модуля, я когда-то чувствую, что приложение будет использовать его в приоритетном порядке, а изменения в файле CoffeeScript больше не учитываются.
Как я могу избежать такого поведения и избегать компиляции файлов каждый раз? Возможно ли, чтобы движок узла изначально использовал файлы CoffeeScript, не создавая копию
.js
в дереве файлов?Конечно, я понимаю, что движок Node.js является механизмом JavaScript, но есть способ скомпилировать/запустить файлы непосредственно в памяти или в другой папке (так как может показаться интересным увидеть Выход JavaScript)?
Каково точное взаимодействие между движком Node.js, компилятором CoffeeScript и как я могу понять это поведение?