nodejs/npmで俺々ライブラリマネージャ作ってみた
npmの練習がてらに俺々ライブラリマネージャ作ってみました。
なにができるの
- ネット上に転がっている有象無象の javascript をバージョンごとにローカルで管理できます。
- 登録したライブラリは node/express で簡単に出力できます
要はネット上に転がってるjQueryのプラギンとかをどうにかしたかったんです。
npmがnodeにまつわるライブラリを集めているのですが、クライアントサイドはそういうものがなかったので、とりあえずでっちあげました。
$ js-manager - v0.0.1 [commands] - help - installed - search - versions - install $ js-manager install jquery fetching jquery@latest saved as jquery-1.6.2.min.js $ js-manager versions jquery [package] jquery - latest - 1.6.2
※ 今は jQueryと mootools しか登録してないです
nodejs/expressと一緒に使うことを想定してます
var express = require('express'); var app = express.createServer(); var jsm = require('js-manager'); console.log(jspm); var paths = jsm.createPath( app, [ 'jquery@1.6.2','mootools' ] ); app.get('/', function(req, res){ res.writeHead(200, {'Content-Type': 'text/html'}); res.end( '<html>'+ '<script src="'+paths.jquery+'"></script>'+ '<a href="'+ paths.jquery+'">'+paths.jquery+ '</a>'+ '<a href="'+ paths.mootools+'">'+paths.mootools+'</a>'+ '</html>'); }); app.listen(3333);
js-manager#createPath() で呼ぶことでメモリに載せます。返り値はパス。
インストール
npm install -g js-manager npm link js-manager
使い方
js-manager install jqeury@1.6.2
@でバージョン指定。@省略でlatest
フォーマット
~/.javascript_modules/resources.coffee を編集して追加します
exports.resources = jquery : latest: 'http://code.jquery.com/jquery-1.6.2.min.js' "1.6.2": 'http://code.jquery.com/jquery-1.6.2.min.js' mootools: latest:'http://mootools.net/download/get/mootools-core-1.3.2-full-compat-yc.js' "1.3.2":'http://mootools.net/download/get/mootools-core-1.3.2-full-compat-yc.js'
バージョンは latest のみ必須。
設定ファイルがcoffeescriptなのは、単に面倒だったからです。
TODO
- デフォルトの登録ライブラリを充実させる。
- 自作ライブラリをローカルで取り扱えるようにする
- パス決め打ちをどうにかする(環境変数でいいかなぁ)
- ドキュメントを書く
とくにライブラリは登録してなんぼなのでどうにかしたい。自分が使うやつだけでも。
ソースは GitHub - mizchi-sandbox/js-manager: browser side javascript manager です。正直やる気がでるかもわからないので、適当にフォークしてください。