在生产中使用“coffee”而不是“node”命令
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在生产中使用“coffee”而不是“node”命令相关的知识,希望对你有一定的参考价值。
我有一个运行express.js的app.js。
我想将代码转换为coffeescript并考虑创建一个app.coffee,我编译为app.js所以我可以用“node app.js”运行它。
但后来我发现我可以在app.coffee中编写该文件并使用“coffee app.coffee”运行它。
这是一个更好的方法吗? 我可以在生产中使用“咖啡”运行服务器吗?
是的,你可以在生产中使用咖啡命令。 我用它。
我可以看到你想要使用app.js包装器的两个原因。
- 您想使用CoffeeScript的本地安装。 (应用之间的不同版本)
- 您想使用默认的npm start启动服务器:)请参阅npm help scripts
哦,你不需要编译它。 您可以使用这样的包装器透明地编译咖啡文件:
server.js:
require('coffee-script').register();
require("./yourcoffeeapp.coffee");
如果要在某些不直接支持CoffeeScript命令的托管环境中使用CoffeeScript,则此包装器技术特别有用。 比如Cloud 9 IDE。 无需编译已编译的js文件。
我赞成了Epeli的答案,这是明确而优秀的 - 使用.js“包装”而不是coffee
命令可以帮助你避免潜在的路径问题 - 但由于这是一个主观问题,让我提出相反的意见。
我自己包含的许多CoffeeScripters建议在部署之前将非平凡的Node应用程序编译到JS。 看看Sam Stephenson的节点 - 咖啡项目模板并不难看,它包含了一个使编译和测试变得轻而易举的Cakefile。
这样做的一个主要原因是节点堆栈跟踪给出了引用编译的javascript的行号,而不是原始的CoffeeScript。 因此,当您的服务器日志中记录错误时,能够在服务器上查看相应的代码是很好的。
编译JS的另一个好处是它可以让你在服务器上使用更多的工具 - 许多Node调试器,测试框架和像集群一样的惊人的东西,比如直接在.js文件上运行。
为您的项目获得良好的编译设置需要一些工作,但我认为您会发现它值得。
我更喜欢像这样创建main.js:
require("coffee-script");
require('./yourcoffeeapp');
和yourcoffeeapp.coffee像这样:
http = require 'http'
on_request = (req, res) =>
res.writeHead 200, {'Content-Type': 'text/plain'}
res.end "Hello World
"
server = http.createServer on_request
server.listen 1337, "127.0.0.1"
以上是关于在生产中使用“coffee”而不是“node”命令的主要内容,如果未能解决你的问题,请参考以下文章
process.env.NODE_ENV === "开发" 即使在生产中
您是不是需要在生产中使用应用内购买功能/授权才能让用户使用 SKStoreProductViewController 在 iTunes 上购买歌曲?