안녕하세요, hubot 용 addon 스크립트를 작성하려고합니다. 나는 범위 지정에 문제가있는 것 같습니다. 포크 콜백 내 "msg"참조는 정의되어 있지 않습니다. 콜백에 어떤 변수도없는 것 같습니다.Coffeescript 콜백 범위 지정 문제
나는 또한 내장 된 jiraissues.coffee와 동일한 문제가 발생했습니다! 어제 그 스크립트에서 jiraUrl은 콜백에서 정의되지 않았습니다. 오늘 아침에 다시 작동했는데 이제는 다시 작동을 멈췄습니다. 나는 그것을 결코 수정하지 않았다.
경험이있는 사람이 있습니까?
githubApi = require("node-github")
module.exports = (robot) ->
github = new githubApi { "version": "3.0.0" }
github.authenticate { "type":"basic", "username":process.env.HUBOT_GITHUB_USER, "password":process.env.HUBOT_GITHUB_P
ASSWORD }
robot.respond /kickstart\s(\S+)/i, (msg) ->
name = msg.match[1]
msg.send name
base_url = process.env.HUBOT_GITHUB_API || 'https://api.github.com'
github.repos.fork {"user":"Raven", "repo":"Raven","org":"codedemos"}, (err,data) ->
if err
msg.send "error :("
else
msg.send "Fork Complete..."
는 아직이 산출 실행 잘 보이는
// Generated by CoffeeScript 1.6.3
(function() {
var githubApi;
githubApi = require("node-github");
module.exports = function(robot) {
var github;
github = new githubApi({
"version": "3.0.0"
});
github.authenticate({
"type": "basic",
"username": process.env.HUBOT_GITHUB_USER,
"password": process.env.HUBOT_GITHUB_PASSWORD
});
return robot.respond(/kickstart\s(\S+)/i, function(msg) {
var base_url, name;
name = msg.match[1];
msg.send(name);
base_url = process.env.HUBOT_GITHUB_API || 'https://api.github.com';
return github.repos.fork({
"user": "Raven",
"repo": "Raven",
"org": "codedemos"
}, function(err, data) {
var id;
if (err) {
return msg.send("error :(");
} else {
return id = data.id;
}
});
});
};
msg.send("Fork Complete...");
}).call(this);
로 컴파일 :
ReferenceError: msg is not defined
at Object.<anonymous> (/opt/kbot/scripts/kickstart.coffee:48:2, <js>:36:3)
at Object.<anonymous> (/opt/kbot/scripts/kickstart.coffee:33:1, <js>:38:4)
at Module._compile (module.js:456:26)
아, 나는 그것을 알아 차리지 못했습니다! eof에 빈 줄을 넣으려면 coffeescript의 요구 사항입니까? 앞으로 공백을 표시 할 수있는 편집기를 사용해야 할 것입니다. 감사. – Sam
기본적으로 coffeescript는 들여 쓰기 수준이 변경 될 때를 이해해야하며,이 경우 들여 쓰기 된 줄과 줄 바꿈이없는 파일은 끝낼 수 없습니다. 파일의 마지막 줄이 왼쪽으로 치우쳐 있으면이 딱딱한 부분은 치지 않습니다. 어쨌든 모든 텍스트 파일을 개행 문자로 끝내는 것이 유닉스의 베스트 프랙티스 였기 때문에 편집기를 자동으로 설정하도록 설정하십시오. 그리고 공백이 중요한 언어로 작성하는 경우 공백을 표시하고 조작하기에 좋은 편집기를 사용하는 것이 가장 좋습니다. –