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
不需要咖啡脚本,因为您已经在使用咖啡了。