メモ > 技術 > フレームワーク: Node.js > Node.js
Node.js
■概要
Node.js ... サーバーサイドで実行できるJavaScript
npm ... Node Package Manager の略で、Node.jsのパッケージを管理するツール
yarn ... npmの後に登場したパッケージ管理ツール
npmの上位互換となっており、インストールの高速化など改良されたものになっている
nvm ... システム内に複数バージョンのNode.jsをインストールし、切り替えて使うことができるようになる
Node.js
https://nodejs.org/ja/
Node.jsとはなにか?なぜみんな使っているのか? - Qiita
https://qiita.com/non_cal/items/a8fee0b7ad96e67713eb
いまさら聞けないNode.js | さくらのナレッジ
https://knowledge.sakura.ad.jp/24148/
そもそもnpmからわからない
https://zenn.dev/antez/articles/a9d9d12178b7b2
【Node.js】npmとyarnの違い - Qiita
https://qiita.com/mzmz__02/items/4ba43b69c8878a9ca99e
とほほのNode.js入門 - とほほのWWW入門
https://www.tohoho-web.com/ex/nodejs.html
nvm で複数の Node.js バージョンを切り替えて使用する (Node Version Manager) - まくまくNode.jsノート
https://maku77.github.io/nodejs/env/nvm
■導入
Node.js をインストール
手順中の「Tools for Native Modules」の画面では、「Automatically install the necessary tools.」にチェックを入れずに進める(デフォルトのまま)
>node -v
v12.16.2
>node
Welcome to Node.js v12.16.2.
Type ".help" for more information.
> console.log('Hello!');
Hello!
undefined
> .exit
■Webサーバを起動
C:\Users\refirio\Node\hello\app.js
const http = require('http');
var server = http.createServer(
(request, response) => {
response.end('Hello Node.js!');
}
);
server.listen(3000);
以下で起動
>cd C:\Users\refirio\Node\hello
>node app.js
ブラウザで以下にアクセスすると「Hello Node.js!」と表示される。Ctrl+C で終了できる
http://localhost:3000/
■npmのコマンド
npm入門 - とほほのWWW入門
https://www.tohoho-web.com/ex/npm.html
「npm install パッケージ」とすることで、指定したパッケージをインストールできる
インストールしたパッケージは package.json ファイルに書き込まれる
package.json があれば、「npm install」とすることで再度パッケージをインストールできる
ただし「npm install」を実行すると、「package-lock.json」の内容が書き換えられる可能性がある
これを防ぐには「npm ci」を使うといい(原則こちらを使っておけば問題無さそう)
`npm install` の代わりに `npm ci` が使えるかも(NPMおれおれAdvent Calendar 2019 - 04日目) | Ginpen.com
https://ginpen.com/2019/12/04/npm-install-vs-ci/
「また package-lock.json は(”lock” という名前に反して)node_modules の実際を反映するものだからです。本当にロックしちゃうとそれはそれで問題があったため変更されたようで。マジかよ。」
npmの依存関係とv7のロックファイルについて調べてみた
https://zenn.dev/estra/articles/npm-lockfile-dependencies
npm installの使い方とnpm ciの使い方 | 株式会社CONFRAGE ITソリューション事業部
https://confrage.jp/npm-install%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9/
npm installとnpm ciの違いをメモする - CLOVER
https://kazuhira-r.hatenablog.com/entry/2022/01/04/164924
npm install と npm ci の話 | PzGleaner
https://pzgleaner.com/archives/npm-ci
「npm ci は node_modules ディレクトリを一度削除して、package.json との整合性をチェックした上で node_modules を再現します。」とあるように、
node_modulesディレクトリは再作成されるようだが、その場合でも処理は数秒で完了できた
package-lock.jsonについて知りたくても聞けなかったこと - Qiita
https://qiita.com/fj_yohei/items/7ca887a45e0855917279
npm install と npm ci って結局どう使うの?2023年版 - Mitsuyuki.Shiiba
https://bufferings.hatenablog.com/entry/2023/03/15/215044
「npm ciのciは "Continuous Integration"ではなく、"Clean Install"」