node-webkit 은 node 가 포함되어 있는데

이중 파일을 다루기 위한 것에는 fs 모듈이 있습니다. 

괜찮긴 한데 좀 아쉬운 점이 있습니다. 

이런 fs 모듈에 추가적으로 편리한 기능을 가지고 있는 모듈이 있습니다. 

이름 하여 fs_extra 

예를 들면 기존 fs 에서 파일을 복사하거나 디렉토리를 복사하려면 무척 귀찮다. 

이걸 다음과 같이 하면 간단하게 된다. 

물론 기존 fs 와 완벽한 호환이 된다. 

fs = require('fs-extra'); 
fs.copySync('/tmp/mydir', '/tmp/mynewdir' );

이렇게 하면된다. 

진짜 좋다. 

fs-extra 모듈은 다음 사이트 위치에 있다.

https://npmjs.org/package/fs-extra

우선 다음과 같이 package.json 패키지 파일을 만듭니다. 

----[package.json]--------------------------------------------------------------
{
 "name": "fs_extra",
 "main": "index.html",
 "window": {
"toolbar": false,
"width": 480,
"height": 180
 }
}
--------------------------------------------------------------------------------

그리고 모듈을 설치해야 한다. 

> cd \
> cd nw
> cd fs_extra
> npm install --save fs-extra

--save 모듈 패키지의 의존성과 같은 것을 업데이트 합니다. 

실행 결과는 다음과 같다. 

c:\nw\samples\fs_extra>npm install --save fs-extra
npm WARN package.json fs_extra@ No description
npm WARN package.json fs_extra@ No repository field.
npm WARN package.json fs_extra@ No README data
npm http GET https://registry.npmjs.org/fs-extra
npm http 200 https://registry.npmjs.org/fs-extra
npm http GET https://registry.npmjs.org/fs-extra/-/fs-extra-0.8.1.tgz
npm http 200 https://registry.npmjs.org/fs-extra/-/fs-extra-0.8.1.tgz
npm http GET https://registry.npmjs.org/ncp
npm http GET https://registry.npmjs.org/jsonfile
npm http GET https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/rimraf
npm http 304 https://registry.npmjs.org/rimraf
npm http 200 https://registry.npmjs.org/jsonfile
npm http 200 https://registry.npmjs.org/mkdirp
npm http GET https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz
npm http 200 https://registry.npmjs.org/ncp
npm http GET https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz
npm http 200 https://registry.npmjs.org/jsonfile/-/jsonfile-1.1.1.tgz
npm http 200 https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz
npm http GET https://registry.npmjs.org/graceful-fs
npm http 304 https://registry.npmjs.org/graceful-fs
fs-extra@0.8.1 node_modules\fs-extra
├── jsonfile@1.1.1
├── ncp@0.4.2
├── mkdirp@0.3.5
└── rimraf@2.2.2 (graceful-fs@2.0.1)

이후에 package.json 패키지 파일은 다음과 같이 변경됩니다.

----[package.json]--------------------------------------------------------------
{
 "name": "fs_extra",
 "main": "index.html",
 "window": {
"toolbar": false,
"width": 480,
"height": 180
 },
 "dependencies": {
"fs-extra": "~0.8.1"
 }
}
--------------------------------------------------------------------------------

자 이제 간단한 사용법을 알아 보자. 

이제 index.html 을 다음과 같이 만듭니다. 

----[index.html]----------------------------------------------------------------
<html>
<head>
<meta http-equiv="content-Type" content="text/html; charset=utf-8" /> 
<title>fs-extra 시험</title>
<script type="text/javascript" src="js/jquery-2.0.3.min.js"></script>
</head>
<body>
<h1>fs-extra 시험</h1>
<script type="text/javascript" src="main.js"></script>  
</body>
</html>
--------------------------------------------------------------------------------

이제 main.js를 다음과 같이 만듭니다. 

----[main.js]-------------------------------------------------------------------
var fs=require('fs-extra');
console.log( 'main.js 안에서 fs-extra 모듈을 로드 하였습니다.' ); 
fs.copySync('node_modules', 'tmp/node_modules');
console.log( '복사가 끝났습니다.' ); 
--------------------------------------------------------------------------------

쉽죠?

이거이 진짜 편리한 모듈입니다. ㅋㅋ