【Node】Node.js ~ 基本編 / npm ~

■ はじめに

目次

【1】npm
 1)package.json
 2)package-lock.json
【2】コマンド一覧
 0)バージョン確認
 1)npm install
 2)npm run
【3】構文
【4】サンプル

【1】npm

* npm : Node Package Manager (パッケージを管理ツール)
 => テンプレートエンジン「ejs (Embedded JavaScript)」をインストールする

動画
https://dotinstall.com/lessons/basic_nodejs/26209
https://dotinstall.com/lessons/basic_nodejs/26210

1)package.json

* パッケージを管理するために使われる構成ファイル
* 詳細は、以下を参照。

https://www.atmarkit.co.jp/ait/articles/1602/23/news024.html

2)package-lock.json

* npm install 実行時に作成・更新されるファイルで
* npm install によって、実際にインストールした
 パッケージの具体的なバージョンのみが記述される
 => package.json は、バージョンの範囲(x.x.x以上など)が記載
* 詳細は、以下を参照。

https://qiita.com/sugurutakahashi12345/items/1f6bb7a372b8263500e5

【2】コマンド一覧

0)バージョン確認
1)npm install
2)npm init
3)npm run

0)バージョン確認

npm --version

1)npm install

* パッケージのインストール

A)npm install [パッケージ]

# ローカルインストール (現在のフォルダのみにインストールする)
npm install ejs

# 確認
ls -l node_modules/ejs
=> 全体で行いたい場合は、グローバルインストール「npm install -g ejs (g:global)

B)npm install (オプションなし)

* オプションなしの場合、package.jsonの内容に従って、インストールする

https://qiita.com/sinmetal/items/395edf1d195382cfd8bc

C)npm install --xxx

# options Abbreviation Explanations
1 --save-dev -s 現在のプロジェクト内にインストール
2 --global -g ローカルマシン全体にインストール

2)npm init

* package.jsonファイルを作成するコマンド
* プロジェクトのルートディレクトリで「npm init」コマンドを実行
 => 実行すると、いくつか質問がくるので答えてあげればできる

3)npm run

* package.jsonで書かれているscripts要素内のタスク実行機能を呼び出すコマンド

package.json

{
  "scripts": {
    "start": "echo hello"
  }
}

動作確認

npm run start
~~~~
npm notice Changelog: https://github.com/npm/cli/releases/tag/v7.3.0
npm notice Run npm install -g npm@7.3.0 to update!
npm notice

> start
> echo hello

hello
~~~~

【3】構文

テンプレート読み込み

var template = fileSystem.readFileSync(__dirname + '【テンプレートパス】', 'utf-8');

出力

# エスケープ処理を行わない
<%= 【変数】 %>

# エスケープ処理を行う
<%- 【変数】 %>

【4】サンプル

hello.ejs

<html>
<body>
<h1><%= title %></h1>
<h2><%= title2 %></h2>
<h3><%- subtitle %></h3>
<h4><%= index %> views</h4>
</body>
</html>
   settings.js
exports.port='18080';
exports.host='127.0.0.1';
   hello.js
// HTTPモ/File Systemジュールを呼び出す
var http = require('http'),
    fileSystem = require('fs'),
    ejs = require('ejs');

// 外部ファイルから取得
var settings = require('./settings.js');
var server = http.createServer();

var template = fileSystem.readFileSync(__dirname + '/hello.ejs', 'utf-8');

var index = 0;
server.on('request', function(request, response) {
    index++;
    var data = ejs.render(template, {
       title: "Hello",
       title2: "<b>Hello2</b>",
       subtitle: "<b>World</b>",
       index: index
     });
    response.writeHead(200, {'Content-Type': 'text/html'});
    response.write(data);
    response.end();
});

server.listen(settings.port, settings.host);
console.log("Server listening...");

出力結果

ブラウザで以下をアクセスする 

http://127.0.0.1:18080

ブラウザから以下が表示されるはず 

Hello
<b>Hello2</b>
World
1 views

関連記事

Node.js ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2018/06/05/211900
Node.js ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/06/000000
Node.js ~ 基本編 / ファームデータを処理する ~
https://dk521123.hatenablog.com/entry/2018/06/17/093535