Javascript Node.js、coffeescript和编译的js文件

Javascript Node.js、coffeescript和编译的js文件,javascript,node.js,coffeescript,nodemon,Javascript,Node.js,Coffeescript,Nodemon,我知道可以在本机使用CoffeeScript而不是JavaScript,而无需将CoffeeScript文件编译为JavaScript(至少不将其编译为文件;可能是在内存中或动态编译) 我有一个带有主app.coffee文件的基本应用程序,如下所示: coffee = require 'coffee-script' coffee = require 'coffee-script/register' express = require 'express' compression = require

我知道可以在本机使用CoffeeScript而不是JavaScript,而无需将CoffeeScript文件编译为JavaScript(至少不将其编译为文件;可能是在内存中或动态编译)

我有一个带有主
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()
# [...]
在my package.json中,我有以下内容:

// ...
"dependencies": {
  "coffee-script": "^1.9.3"
  // ...
}
"scripts": {
  "start": "coffee app.coffee --nodejs"
  // ...
}
// ...
我可以使用nodemon app.coffee运行应用程序 或
$>咖啡应用程序。咖啡
$>npm启动

当我重新运行应用程序或保存CoffeeScript文件时,CoffeeScript文件被编译成JavaScript文件,因此文件夹树中的每个文件最终都会在
.js
.coffee
版本中重复,这让我感到非常不安

此外,一旦模块有了
.js
文件,我有时会觉得应用程序会优先使用它,而不再考虑CoffeeScript文件中的更改

  • 如何避免这种行为,并避免每次编译文件?节点引擎是否可以本机使用CoffeeScript文件,而不在文件树中创建
    .js
    副本

  • 当然,我知道Node.js引擎是一个JavaScript引擎,但是有没有办法直接在内存或其他文件夹中编译/运行文件(因为查看JavaScript输出可能仍然很有趣)

  • Node.js引擎和CoffeeScript编译器之间的确切交互是什么?我如何理解这种行为


我经常使用一个小的
.js
文件来启动我的代码,命令启动我的应用程序
节点index.js
,其中包含以下内容:

CoffeeScript = require('coffee-script');
CoffeeScript.register();
require('./src/main');
/src/main
更改为咖啡文件的路径

它使用咖啡文件来运行代码,并提供堆栈跟踪等。。与你的咖啡来源相对应

您的
app.coffee
不需要使用coffee脚本,因为此时您已经在使用coffee了