Node.js,coffeescript和编译的js文件

我明白,可以原生使用CoffeeScript代替JavaScript,而不需要将JavaScript编译成CoffeeScript文件(至less不能将它们编译为文件;也许在内存中或者即时编译)。

我有一个主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文件而不在文件树中创build.js副本?

  • 当然我明白Node.js引擎是一个JavaScript引擎,但是有没有办法可以直接在内存中或者在不同的文件夹中编译/运行文件(因为看到JavaScript输出可能仍然很有趣)?

  • Node.js引擎,CoffeeScript编译器和我怎么理解这个行为之间的确切的相互作用是什么?

我经常使用一个小的.js文件启动我的代码,使命令启动我的应用程序node index.js ,其中包含:

 CoffeeScript = require('coffee-script'); CoffeeScript.register(); require('./src/main'); 

./src/main更改为咖啡文件的path。

它使用你的咖啡文件来运行你的代码给堆栈跟踪等..对应于你的咖啡来源。

您的app.coffee不需要咖啡脚本,因为您已经在使用咖啡了。