HTMLとJSファイルでちょっとしたサンプルコードを動かすときにnpmだけでローカルサーバを起動する方法はどうすればいいのかなと検索したところ、Qiitaにわかりやすい解説が投稿されていました。
自分で試した時に忘れてエラーになったところ
package.xml作成後にscriptsのstartでhttp-serverを起動するようにします。
{ "name": "app", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "http-server -o" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "http-server": "^0.9.0" } }
これでnpm startするとサーバーが起動します。
こんな感じでindex.html以外も表示できます。
別の方法
$ mkdir app $ cd app $ npm init $ npm install express --save $ mkdir public $ touch public/index.html $ touch server.js
package.xmlの内容
{ "name": "app", "version": "0.0.0", "description": "", "main": "server.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC" }
server.jsの内容。
var express = require('express'); var app = express(); var port = process.env.PORT || 8080; // Serve static files app.use(express.static(__dirname + '/public')); // Serve your app console.log('Served: http://localhost:' + port); app.listen(port);
npm startで同じように表示できます。準備が少し大変だけどHerokuとかで動かしたいときはこっち。