【问题标题】:CoffeeScript errorCoffeeScript 错误
【发布时间】:2014-08-01 12:13:59
【问题描述】:

尝试在命令行中将简单的咖啡脚本编译为 JS 失败并出现以下错误:

> ReferenceError: ko is not defined   at Object.<anonymous>
> (/Users/jikku/JS/ko_crashcourse/script.coffee:2:9)   at
> Object.<anonymous> (/Users/jikku/JS/ko_crashcourse/script.coffee:1:1) 
> at Module._compile (module.js:456:26)

我正在尝试编译的咖啡脚本:

app_model =
  task: ko.observable()
  tasks: ko.observableArray()
  add_task: ->
    @tasks.push @task()
    return

ko.applyBindings app_model
  • JS2Coffee 中运行良好
  • 我使用了命令:coffee s.coffee

有什么想法吗?

【问题讨论】:

  • 因为错误表明您正在尝试访问未定义的对象:ko。尝试检查它为什么未定义。
  • 这很简单ko没有定义。
  • 听起来您正在将 CoffeeScript 转换为 JavaScript。转译器(有时称为编译器)应该有一些选项允许您定义将存在于您希望运行 JavaScript 的环境中的外部符号。将ko 添加到该符号列表中。
  • 是的,我正在蒸腾;如何添加外部符号?通过命令行参数? js2coffee是如何自己检测到的?

标签: javascript knockout.js command-line coffeescript


【解决方案1】:

问题是

coffee s.coffee

会将您的咖啡文件编译为 JavaScript 并运行它。这就是您收到未定义错误的原因(您的文件中没有敲除)。

使用-c 编译:

coffee -c s.coffee

(将输出到s.js

【讨论】:

  • 哦默认是编译运行?这是出乎意料的,可能应该从输出中预料到。无论如何,谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 2013-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多