如何让 TextMate 在编译时查看 CoffeeScript 中的"require"表达式?



当在TextMate中编写CoffeeScript并希望使用第三方Javascript库(如jQuery或Raphael)时,需要添加像这样的"require":

$ = require 'jquery'

在命令行中使用coffee -c myfile.coffee时可以正常工作,但在TextMate包中尝试编译时会出现以下错误:

Error: Cannot find module 'jquery'
at Function._resolveFilename (module.js:317:11)
at Function._load (module.js:262:25)
at require (module.js:346:19)
at Object. (.:3:7)
at Object. (.:4:4)
at Module._compile (module.js:402:26)
at Object.run (/usr/lib/node_modules/coffee-script/lib/coffee-script.js:62:19)
at /usr/lib/node_modules/coffee-script/lib/command.js:120:29
at Socket. (/usr/lib/node_modules/coffee-script/lib/command.js:154:14)
at Socket.emit (events.js:61:17)

在这个例子中,所有的代码都在项目根目录下。

当指定

时也会发生相同的情况:
$ = require 'jquery.js'

其他人如何在CoffeeScript编译TextMate包?对我来说,除了最琐碎的代码之外,这似乎是一个大亮点。除了语法突出显示之外,这肯定是这个bundle中最重要的部分之一吧?

您已经点击了"Run"命令(⌘R),相当于coffee myfile.coffee

您想要"编译和显示JS"(⌘B),相当于coffee -c --print --bare myfile.coffee。这将打开一个窗口,其中包含编译后的输出

var $;
$ = require('jquery');

对于像jQuery和Raphael这样的require库,我希望你明白CC_5只是一个加载模块的运行时函数;它没有编译时的含义。您可能来自像c++或Java这样的语言,其中有一个"链接器"。另一方面,在CoffeeScript中,代码一次编译为一个JavaScript文件,JavaScript文件被单独加载到运行时环境中(无论是浏览器还是像Node.js这样的框架)。

最新更新