0

我刚刚开始使用 CodeKit,到目前为止它很棒,但是我在 CoffeeScript 文件中包含 JavaScript 文件时遇到了麻烦。

在 CoffeeScript 文件中,我有一行:

# @codekit-prepend './vendor/backbone.js'  

这会导致以下错误:

SyntaxError: In /var/folders/t1/h24_m5yx2yq5sjc2jztvh2xr0000gn/T/CodeKitTempFolder.rrBQ5JI7WP7b1dQ/temp.coffee, reserved word "function" on line 27
at SyntaxError (unknown source)
at Lexer.exports.Lexer.Lexer.error (/Users/makala/Downloads/CodeKit.app/Contents/Resources/engines/coffee/lib/coffee-script/lexer.js:682:13)
at Lexer.exports.Lexer.Lexer.identifierToken (/Users/makala/Downloads/CodeKit.app/Contents/Resources/engines/coffee/lib/coffee-script/lexer.js:86:16)
at Lexer.exports.Lexer.Lexer.tokenize (/Users/makala/Downloads/CodeKit.app/Contents/Resources/engines/coffee/lib/coffee-script/lexer.js:33:19)
at Object.exports.compile.compile (/Users/makala/Downloads/CodeKit.app/Contents/Resources/engines/coffee/lib/coffee-script/coffee-script.js:47:32)
at compileScript (/Users/makala/Downloads/CodeKit.app/Contents/Resources/engines/coffee/lib/coffee-script/command.js:182:33)
at fs.stat.notSources.(anonymous function) (/Users/makala/Downloads/CodeKit.app/Contents/Resources/engines/coffee/lib/coffee-script/command.js:152:18)
at fs.readFile (fs.js:176:14)
at Object.oncomplete (fs.js:297:15)

CoffeeScript 文件在没有该行的情况下可以完美编译。

我试图添加的 JS 文件不是直接编译的,而是“连接 + 缩小”的。JSHint/Lint没有检查CS 文件,它正在被缩小。

我认为这个错误可能是由于缺乏错误抑制(参见http://incident57.com/codekit/help.php上的“JavaScript 和 CoffeeScript 导入”>“抑制错误” )。但是“显示错误”复选框在 CodeKit 应用程序中不可见。

哦,还有一件事,输出的 javascript 文件包含原始的咖啡脚本。我不确定这是编译失败的原因还是结果。

关于可能导致编译失败的任何想法?

感谢您的关注:)。

4

1 回答 1

2

由于技术原因(变量/函数阴影等),无法直接组合 CS 和 JS 文件。您需要做的是创建一个新的 Javascript 文件,该文件导入(使用 prepend/append 语句)编译 CS 文件时生成的 OUTPUT 文件和要导入的 JS 文件。

然后,每当您保存 Coffee 文件时,CodeKit 都会做正确的事情并重新编译 javascript 文件。干杯!

资料来源:Bryan Jones,CodeKit 作者

于 2013-01-23T02:03:26.440 回答