npmでnodejsのライブラリを作る
空のフォルダを作る
mkdir mytest-package
最小構成
mytest-package/package.json
{ "name": "mytest-package", "version": "0.0.1", "main": "./index.js", }
mytest-package/index.js
exports.hello = "Hello"
インストール
npm install .
つかってみる
$ node > test = require("mytest-package"); > test.hello Hello
実行コマンドを持ってる場合
npmとかcoffeeみたいな、パッケージに依存したUnixコマンドを作る
mytest-package/package.json
{ "name": "mytest-package", "version": "0.0.2", "bin": "./test-bin", "main": "./index.js", }
mytest-package/index.js (同上)
exports.hello = "Hello"
mytest-package/test-bin (chmod +x test-bin)
#!/usr/bin/env node hello_message = require('./index.js').hello console.log( hello_message );
注意:実行名はtest-binではなくnameになります
$ npm install . -g $ npm link mytest-package $ mytest-package Hello
実行ファイルに名前をつけたい場合は
{ "name": "mytest-package", "version": "0.0.2", "bin": [ {"test-bin":"./test-bin"} ], "main": "./index.js", }
おまけ
コマンドつくるにあたって、パス周りを調べてて、nodejsのサンプルが少なかったので、よく使うやつをメモ
process.chdir("")
カレントパスを変更
ちなみに ~ は使えないので、process.env["HOME"]などしてホームディレクトリ取得する必要がある
process.env
process.env["HOME"] 環境変数へのアクセス
path.join("a","b"."c",...)
path = require("path");
path.join( process.env["HOME"] , ".profile" ); // #=> /Users/mizchi/.profile など