【问题标题】:Node.js not recognizing CoffeescriptNode.js 无法识别 Coffeescript
【发布时间】:2014-03-30 19:59:43
【问题描述】:

我目前正在尝试与 SailsJS 框架一起进入 NodeJS。 而且我也想在服务器端使用coffeescript,但是在使用js2coffee将config/*.js中的所有文件正确转换为config/*.coffee后,尝试启动应用程序时出现以下错误:

config/400.coffee

SyntaxError: Unexpected token ILLEGAL

指向文件中的第一个字符,这是咖啡评论的标签。因此,该应用似乎无法将该文件识别为coffeescript,而是搜索标准js。

我尝试安装包 coffee-script 并要求它

app.js

require('coffee-script');
require('sails').lift(require('optimist').argv);

但没用。

如果我删除400.coffee,错误出现在下一个文件403.coffee等中。

我做错了什么?配置文件中不允许使用咖啡脚本还是我遗漏了什么?

【问题讨论】:

  • 你如何从命令行调用它?
  • @Bergi 我开始使用sails lift
  • 我担心require('coffee-script') 不会做你想做的事。通常你需要在使用node 执行之前将coffeescript 显式编译为js,或者使用coffee 来启动它。不过有帆it looks like you need some special flags to the executable.
  • 如果你使用的是当前稳定的coffeescript,相信你需要require('coffee-script/register')?
  • @loganfsmyth require('coffee-script')require('coffee-script/register') 有效。如果我将它注入app.js,我会遇到任何问题,例如性能明智?

标签: javascript node.js coffeescript sails.js


【解决方案1】:

2014 年 1 月 28 日发布的 Coffeescript 1.7.0 将 require('coffee-script') 行为更改为仅加载编译器本身。现在,为.coffee 文件加载自动编译器,您必须在加载任何coffeescript 文件之前调用require('coffee-script/register')

请记住,使用它意味着每次启动 node 时都会重新编译每个 .coffee 文件,这可能会增加启动时间。不过,这对您来说可能重要也可能不重要。

【讨论】:

  • 我还必须在sails节点模块中更改sails.js中的行,否则服务器会启动,但其他sails命令最终会出现相同的错误。 Sails 本身似乎没有针对较新的咖啡版本进行更新。
  • 如果您想避免第二段中提到的重新编译问题,请查看coffee-cache
猜你喜欢
  • 2014-01-09
  • 1970-01-01
  • 2018-12-10
  • 1970-01-01
  • 2020-10-13
  • 2011-12-28
  • 2014-06-08
  • 1970-01-01
  • 2022-01-22
相关资源
最近更新 更多