강좌 & 팁
글 수 2,412
2014.01.21 02:52:41 (*.52.177.249)
40874
우리 같은 프로그래머들이 윈도우 프로그램 짠다고 하면
어찌되었든 실행 파일이 만들어져야 의미가 있죠?
하지만 지금까지 HTML 프로그램을 짠건지 노드 서버 프로그램을 짠건지
잘 모르겠죠?
흠..
저도 그래요...
우선 간단한 실행 파일 프로그램을 만들어 봅시다.
이 과정은 이번 한번만 강의 할 겁니다.
항상 똑같거든요
먼저 프로그램을 작성해 봅시다.
저번과 동일한 것인데 표출 되는 내용만 바뀝니다.
오늘, 만들 프로젝트 위치는 c:\nw\make_exe 라는 디렉토리 입니다.
앞으로 이야기 하지 않아도 새로 만든 디렉토리에는
"node_modules" 디렉토리가 항상 포함되어 있어야 합니다.
자 ..
그럼 첫번째 만들 파일은 package.json 입니다.
----[package.json]--------------------------------------------------------------
{
"name": "make exe",
"main": "index.html"
}
--------------------------------------------------------------------------------
다음은 index.html을 작성합니다.
----[index.html]----------------------------------------------------------------
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=utf-8" />
<title>실행 파일로 만들기</title>
</head>
<body>
<h1>실행 파일로 만들기</h1>
이 프로그램은 실행 파일로 만들어져서 동작합니다.
<script type="text/javascript" src="main.js"></script>
</body>
</html>
--------------------------------------------------------------------------------
이제 모듈을 호출하고 실제 모듈에 포함된 함수를 호출하는 main.js 을 작성합니다.
----[main.js]-------------------------------------------------------------------
var tm = require('test_module');
console.log( 'main.js 안에서 test_module 모듈 함수 tm.hello() = ', tm.hello() );
--------------------------------------------------------------------------------
파일은 node_modules 디렉토리에 test_module.js 을 작성합니다.
----[node_modules/test_module]-------------------------------------------------------------------
export.hello = function () {
console.log( 'test_module.js 의 hello()함수가 호출되었습니다.');
return "hello result";
};
--------------------------------------------------------------------------------
뭐 이전에 실행을 해 봤기 때문에 똑같이 동작 할 겁니다.
달라진것은 index.html 의 출력 메세지만 달라 졌죠...
자 이제 실행 파일로 만들는 과정을 소개 합니다.
가장 먼저 할일은 필요한 파일을 모두 zip 형식으로 압축 하는 겁니다.
물론 여러분이 만든것들을 말합니다.
또는 다운 받은 모듈 같은 겁니다.
위와 같이 프로그램 했다면 다음과 같이 하면 됩니다.
zip -r app.zip package.json index.html main.js node_modules/*
압축되는 이름은 app.zip 이죠
mv
하지만 이 이름을 그대로 사용하면 안됩니다. 확장자를 nw 로 바꾸어야 합니다.
mv app.zip app.nw
여기서 다음과 같은 명령으로 실행해 봅니다.
nw app.nw
정상적으로 동작하면
다음과 같은 명령을 통해서 실행 파일을 만듭니다.
copy /b nw.exe+app.nw app.exe
그리고 나서 app.exe 를 실행하면 됩니다.
그런데 여기서 조심하여야 하는 것이 이 실행 파일 동작하는 위치의 디렉토리에
반드시 있어야 하는 것이 있는데 다음 파일입니다.
nw.pak
icudt.dll
그외에도 HTML5 에 사용되는 컴포넌트에 따라서 .dll 파일들이 필요한데
이런 걸 일일히 기억하는 것이 귀찮아서
걍 복사해서 넣으라고 여러분께 알린 거죠...
실행 파일 만드는 것 쉽죠?
버전 문제인지는 몰라도, "export.hello = function () {" 부분에 exports.hello 로 바꿔야 실행이 됩니다. 참고하세요!!