我刚开始使用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文件是不直接编译,并且是#34;连接+缩小"。 JS文件不由JSHint / Lint检查, 被缩小。
我认为这个错误可能是由于缺少错误抑制(参见" JavaScript和CoffeeScript Imports">"抑制错误"在http://incident57.com/codekit/help.php)。但是"显示错误"复选框在CodeKit应用程序中不可见。
哦,还有一件事,输出的javascript文件包含原始的coffeescript。我不确定这是编辑失败的原因还是结果。
有什么可能导致编译失败的想法?
感谢您寻找:)。
答案 0 :(得分:2)
由于技术原因(变量/函数阴影等),无法直接组合CS和JS文件。您需要做的是创建一个新的Javascript文件,该文件导入(使用prepend / append语句)编译CS文件时生成的OUTPUT文件和要导入的JS文件。
然后,每当您保存Coffee文件时,CodeKit都会做正确的事情并重新编译javascript文件。干杯!
来源:Bryan Jones,CodeKit作者