【发布时间】:2013-11-22 00:03:09
【问题描述】:
我正在 Mac 和 Windows 上开发一个项目。如果我在 Mac 上构建项目,Handlebars 模板会将换行符转换为包含 LF(换行符)字符的字符串。如果我在 Windows 上执行相同的步骤,它会将换行符转换为包含 CRLF(回车和换行)字符串的字符串。
目前尚不清楚问题的根源是 Handlebars、Node、Cygwin、Cake 还是 Git。直觉上,我可能认为 Handlebars 是基于模板的精确性质,Git 会根据我在哪台机器上自动将模板的新行转换为 CRLF 或 LF。
例如两台机器上Handlebars输出的差异:
Mac (LF):
function program1(depth0,data)
{
var buffer = "", stack1;
buffer += "\n ";
stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
if(stack1 || stack1 === 0) { buffer += stack1; }
buffer += "\n";
return buffer;
}
Windows (CRLF):
function program1(depth0,data)
{
var buffer = "", stack1;
buffer += "\r\n ";
stack1 = helpers.each.call(depth0, depth0.produces, {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
if(stack1 || stack1 === 0) { buffer += stack1; }
buffer += "\r\n";
return buffer;
}
如何控制这种行为,使其保持一致而不依赖于平台?
【问题讨论】:
-
您找到解决方法了吗?我也有类似的问题。
标签: git cakephp cygwin newline handlebars.js