当在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这样的框架)。