cloud9 설치
nodejs용 에디터를 찾다가 cloud9을 설치해 보았다. 대문은 c9.io 이다.
설치는 아래처럼 npm을 이용하여 간단하게 진행했다.
npm install cloud9
설치되는 내용을 자세히 안 봤더니 어디에 설치되었는지 모르겠다.
/usr/local/에는 없고, ~/node_modules/cloud9을 만들고 그 밑에 풀어놓았다. 설치형이 아닌가보네.
(참고로, npm이 내려받은 파일은 ~/.npm/에 있다.)
~/node_modules/cloud9/README.md를 열어보면 실행할 수 있도록 설명이 나와있다.
linux와 osx는 bin/cloud9.sh을 실행하란다. 그런데 실행하면 에러난다.
>~/node_modules/cloud9/bin/cloud9.sh
OSX
node.js:134
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Object #<Object> has no method 'main'
at Object.<anonymous> (~/node_modules/cloud9/bin/cloud9.js:42:19)
at Module.<anonymous> (module.js:402:26)
at Object..js (module.js:408:10)
at Module.load (module.js:334:31)
at Function._load (module.js:293:12)
at Array.<anonymous> (module.js:421:10)
at EventEmitter._tickCallback (node.js:126:26)
문제는 bin/cloud9.js파일의42line이다.
구글링해보니 경로에 문제가 있는 것 같다. server/cloud9으로 바꿔주면 된다고 한다.
[변경전] require("cloud9").main(options);
[변경후] require("../server/cloud9").main(options);
뭔가 상대경로가 맞지 않은 것 같다. 음.. 그냥 날로 먹기가 그래서 아래처럼 유추해 보았다.
bin/cloud9.sh에서는 bin/cloud9.js를 호출한다.
cloud9.js 42line에서 require('cloud9')을 하면 bin/cloud9.js를 찾거나, bin/cloud9/index.js를 찾을 것이다. (nodejs document참조)
- bin/cloud9.js라면, 현재 실행되는 자신일텐데 (기동파일에서 재귀라니.. 이상하다.) bin/cloud9.js에는 exprot.main이 없다.
- bin/cloud9/index.js를 찾는 경우라면, bin/cloud9 폴더가 없다.
find로 cloud9.js를 찾으면 bin/cloud9.js 하나 밖에 없다. 어딘가에 있는 cloud9/index.js에서 exports.main하고 있다는 거다.
index.js로 찾으면, server/cloud9/index.js가 나온다. 다른 index.js도 있지만 cloud9/index.js는 이거 하나밖에 없다.
grep으로 exports.main을 찾으면 server/cloud9/index.js 하나만 나온다.
그래서, require("../server/cloud9").main(options); 로 바꾸고 bin/cloud9.sh을 실행하면 3000번 포트로 잘 올라온다. 올라오면서 기본브라우저인 사파리가 열리면서 'http://127.0.0.1:3000/'을 열어준다.
첨에는 하얗게 아무 것도 안 뜨길래 뜨악했는데 firefox로 다시 열어보니 잘 열린다.
safari에서 css관련 issue가 있던 것 같다.
- 오늘 열어보니 safari에서도 잘 뜬다. 좀 전에 update 하나 떠서 적용했는데 그 영향일까?