我正在通过“coffee my_server.coffee”运行 Node 网络服务器,并通过
加载依赖项 require './my_library.coffee'
我的代码库非常大,我的服务器开始花费大量时间来启动,我认为这是由于 coffeescript 编译造成的...当我将整个代码转换为 javascript 时,它加载速度更快.
缓存已编译的 javascript 的最不痛苦的方法是什么,以便当我重新启动服务器时它只编译自上次启动以来我编辑过的文件?理想情况下,它将是完全透明的……我只是继续要求 coffeescript,它会在幕后缓存。
或者,我可以运行“node my_server.js”,并在我的目录上有一个观察器,每当我编辑它时它都会重新编译 coffeescript,但我不太喜欢这个想法,因为它用一堆 js 弄乱了我的目录文件,让我的 gitignore 更复杂,意味着我必须管理观察者功能。有没有办法让我既能吃蛋糕(运行“咖啡”可执行文件并需要咖啡文件)又能吃蛋糕(加载时间快)?
最佳答案
好吧,如果你不想“用一堆 .js 文件弄乱你的目录”,我认为你是 SOL。如果您从来没有将 .js 文件存储在磁盘上,则每次都需要即时将 .coffee 编译为 javascript。据我所知,coffee
命令不会对 .js
和 .coffee
文件之间的 mtime 进行任何比较,尽管理论上它可以,在在这种情况下,留下 .js
文件可能对您的情况有所帮助。根据您的喜好,我唯一可以建议的是:
- 运行一个将所有 .coffee 文件构建到单独的
build
子目录树中的 watcher - 使用
node build/app.js
而不是咖啡启动您的应用 - 忽略
.gitignore
中的build
目录>
不过,您将不得不放弃通过coffee
运行程序。很想看看其他人是否有更好的建议。我的项目不受启动时间问题的影响。 SSD 和小型项目有助于保持简短而不烦人。
关于node.js - CoffeeScript + Node : caching the compiled server-side javascript using require,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17819538/