【发布时间】:2017-01-10 12:19:17
【问题描述】:
在从 ruby 脚本编译咖啡脚本文件时,
来自我的应用程序的示例代码,
$( () =>
rest_api_login((login_ok, userName, userRoles) ->
console.log("login_ok #{login_ok}, userName #{userName}, roles [#{userRoles.join(", ")}]")
vcm.app.userName = userName
vcm.app.userRoles = userRoles
vcm.app.defaultClassifications = []
initialize_templates((loaded_templates) ->
console.log("loaded_templates", loaded_templates)
vcm.app.main_application()
)
)
)
所以,在编译成 js 的时候,还是有区别的。 最后提交的代码大约是 2-3 年前,开发人员不在编译最后一个文件的公司。 编译的变化很少,例如:a!=b 现在编译为 !(a==b),所以编译方式没什么大不了的。
所以,在我编译的文件中,输出的js文件是:
$(function() {
return rest_api_login(function(login_ok, userName, userRoles) {
console.log("login_ok " + login_ok + ", userName " + userName + ", roles [" + (userRoles.join(", ")) + "]");
vcm.app.userName = userName;
vcm.app.userRoles = userRoles;
vcm.app.defaultClassifications = [];
return initialize_templates(function(loaded_templates) {
console.log("loaded_templates", loaded_templates);
return vcm.app.main_application();
});
});
});
之前编译的文件有以下js:
$((function(_this) {
return function() {
return rest_api_login(function(login_ok, userName, userRoles) {
console.log("login_ok " + login_ok + ", userName " + userName + ", roles [" + (userRoles.join(", ")) + "]");
vcm.app.userName = userName;
vcm.app.userRoles = userRoles;
vcm.app.defaultClassifications = [];
return initialize_templates(function(loaded_templates) {
console.log("loaded_templates", loaded_templates);
return vcm.app.main_application();
});
});
};
})(this));
所以我的 js 没有早期编译文件中存在的 return 语句和相应的 this 关键字。
这适用于超过 15000 行的完整 js 文件,
这种类型的影响会阻碍应用程序的功能吗?
如果我想生成和之前生成的一样的js怎么办?
我尝试用几乎所有版本的gem编译它,coffee-script,当前编译的版本是2.2.0。任何帮助将不胜感激。
【问题讨论】:
标签: javascript ruby coffeescript