Skip to content

Instantly share code, notes, and snippets.

@kazz12211
Last active November 29, 2019 00:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kazz12211/314603f4b3c4e880138365b1cc517d94 to your computer and use it in GitHub Desktop.
Save kazz12211/314603f4b3c4e880138365b1cc517d94 to your computer and use it in GitHub Desktop.
Node.jsでAngularアプリを自動リロードしながら開発する方法

プロジェクトのワークスペース

プロジェクトのワークスペースとなるディレクトリを作成し、そのディレクトリにAngularプロジェクトとNode.js(+Express)プロジェクトを作成します。 Node.jsプロジェクトにはnodemon(プロジェクト内のファイルを監視してコードをリロードしてくれる)をインストールします。

$ mkdir myworkspace
$ cd myworkspace
$ ng new myapp
$ mkdir server
$ cd server
$ npm init
$ npm install express --save
$ npm install -D nodemon

ディレクトリ構造は次のようになります。

myworkspace
  |
  +-- myapp
  |
  +-- server

Node.js側(サーバー)の準備

Node.js側の最低限のコードは次のようなものです。

ポイントは4行目のAngularアプリの場所を指定している部分です。

const express = require("express");
const app = express();

app.use(express.static(__dirname + '/../myapp/dist/myapp'));

const server = app.listen(3000, function(){
  console.log("Started. Port:" + server.address().port);
});

package.jsonを次のように編集します。

ポイントはscriptsに追加されたnodemon起動用のエントリです。ここではnodemonがビルドされたAngularアプリとサーバー側のプロジェクトディレクトリを監視するパラメーターを指定しています。

{
  "name": "server",
  "version": "1.0.0",
  "description": "",
  "main": "server.js",
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon --watch ../myapp/dist/myapp --watch . server.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.19.0",
    "express": "^4.17.1"
  }
}

Angularアプリのwatchオプション付きビルド

手動でng buildとやっても構いませんが、完全自動ビルドするならばng build --watchとします。

サーバーの起動

次のコマンドでオートリロードモードでサーバーを起動します。

$ npm run dev

この状態でAngularアプリまたはサーバーのコードを変更すると自動的にサーバーがリロードするので、ブラウザから最新のアプリケーションにアクセスできます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment