1 个文件中定义的类在其他文件中似乎不可用。我试着声明他们喜欢

class exports.Todo extends Backbone.Model ...
...
exports = exports ? this

但它出现在编译的 JS 中,exports 是在闭包中定义的,因此无论如何在其他文件中都不可用。
// Generated by CoffeeScript 1.3.3
(function() {
  var exports, ...

这样做的正确方法是什么?我可以使用似乎有效的 class window.Todo ... ......但不是真的在我的 JS 测试驱动程序中......

最佳答案

你有两个选择;您可以使用“join”选项编译咖啡脚本,以便在编译之前连接所有咖啡文件,或者您可以使用与您正在做的类似的导出。但看起来 - 由于命名不当 - 编译器正在提升/提升导出变量,假设它是本地变量,这是错误的。请参阅 Export a class from a Coffeescript file 了解如何正确执行此操作。

请记住,导出真正指向的内容取决于您是打算在浏览器中还是在其他环境(例如 node.js )中运行您的程序。上面链接的答案展示了一种更好的方法,您只需调用“全局环境”根,代码将其设置为环境认为正确的任何内容(在 node.js 下导出,这意味着浏览器中的窗口)。

关于coffeescript - 在另一个文件中使用 CoffeeScript 中定义的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10927263/

10-13 07:31