강좌 & 팁
글 수 2,412
2014.04.09 14:58:40 (*.134.169.166)
53085
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( '복사가 끝났습니다.' );
--------------------------------------------------------------------------------
쉽죠?
이거이 진짜 편리한 모듈입니다. ㅋㅋ