Node.js は非常に人気のある開発プラットフォームであり、開発者の間で高い評価を得ています。 Node.js アプリケーションを開発するときは、他の環境で使用できる形式にパッケージ化することを考慮する必要があります。この記事では、さまざまな環境で Node.js アプリケーションをパッケージ化して公開する方法を紹介します。
Node.js アプリケーションのパッケージ化と公開を開始する前に、基本的な Node.js アプリケーションを構築する必要があります。ここでは、非常に基本的な方法を教育目的のみに提供します。まず単純なディレクトリ構造を作成し、次に 2 つのファイルをプロジェクトに追加します。最初のファイルは server.js
で、HTTP サーバーの作成に使用されます。 2 番目のファイルは package.json
で、アプリケーションのメタデータ情報と依存関係を指定します。
// server.js const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello, World! '); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
// package.json { "name": "my-node-app", "version": "1.0.0", "description": "A simple Node.js app", "main": "server.js", "dependencies": { "express": "^4.17.1" } }
これは、HTTP モジュールを使用してサーバーを作成し、「Hello, World!」を返すだけの非常に基本的な Node.js アプリケーションです。また、HTTP 要求を簡単に処理するために Express ライブラリも使用します。
Node.js アプリケーションをパッケージ化して公開するには、ターゲットの環境と目的を考慮する必要があります。 Node.js アプリケーションをパッケージ化して公開する一般的な方法をいくつか紹介します。
NPM は、その創設以来、Node.js アプリケーションの主要なパッケージ マネージャーであり続けています。 npm init コマンドを使用して、基本的な package.json ファイルを作成し、アプリケーションの依存関係を指定します。プロジェクトに NPM パッケージをインストールする場合、運用依存関係と開発依存関係を使用して区別できます。 Python ライブラリをパッケージ化する場合、同様の依存関係を使用して必要なサードパーティ ライブラリを指定できます。
# 初始化创建 package.json 文件 npm init # 安装 Express 库并添加到 package.json 文件 npm install express --save
次に、npm Pack
コマンドを実行すると、コードとその他の必要なファイルが含まれる .tgz
パッケージ ファイルが取得されます。
# 打包成 .tgz 文件 npm pack
.tgz
ファイルは、他のプロジェクトにインストールして直接使用することも、他の開発者向けに [NPM レジストリ](https://www.npmjs.com/) にアップロードすることもできます。ダウンロードして使用してください。 NPM パッケージを公開するには、[NPM レジストリ](https://www.npmjs.com/) にアカウントを作成し、npm login
コマンドを使用してログインする必要があります。
# 登录进入 NPM 账户 npm login # 发布 NPM 包 npm publish
Docker では、Node.js アプリケーションをコンテナにパッケージ化して、アプリケーションを異なる環境で実行する際の一貫性を確保できます。アプリケーションを Docker コンテナーにパッケージ化すると、依存関係や古いランタイム環境を気にすることなく、Docker がサポートされている場所であればどこでもアプリケーションを実行できます。
Docker コンテナを生成するには、アプリケーションの依存関係とインストールを指定する Dockerfile を作成する必要があります。
# 使用 Node.js 14 镜像作为基础镜像 FROM node:14 # 将工作目录切换为 /app WORKDIR /app # 复制 package.json 和 package-lock.json 文件到容器中 COPY package*.json ./ # 安装所有生产依赖包 RUN npm install --only=production # 复制所有应用程序文件(包括 node_modules 文件夹) COPY . . # 暴露 3000 端口以供外部访问 EXPOSE 3000 # 在容器中运行应用程序 CMD [ "node", "server.js" ]
Dockerfile ファイルが存在するディレクトリで次のコマンドを実行して、Docker コンテナを生成します。
# 创建并运行容器 docker build -t my-node-app . docker run -p 80:3000 -d my-node-app
上記のコマンドを使用して、Node.js アプリケーションを Docker イメージにパッケージ化し、コンテナー内で正常に実行できました。
[pkg](https://github.com/vercel/pkg) ツールを使用して、Node.js アプリケーションを実行可能ファイル。実行可能ファイル。このツールを使用すると、Node.js や NPM をインストールせずにアプリケーションを実行でき、依存関係の管理が非常に簡単になります。
まず、npm を使用して pkg ツールをインストールします。
# 全局安装 pkg 模块 npm install -g pkg
次に、ターミナルで次のコマンドを実行して、パッケージ化し、実行可能ファイルを生成します。
# 打包成可执行文件 pkg . --output my-node-app.exe
クラウド プラットフォームで Node.js アプリケーションをパッケージ化する最良の方法は、サーバーレス サービスを作成することです。このアプローチにより、インフラストラクチャとネットワーク管理の煩わしさが回避され、必要に応じて適応的なスケーリングが可能になります。
たとえば、AWS Lambda サービスを使用すると、仮想マシンやサーバーを自分で管理しなくても、Node.js アプリケーションをパッケージ化して公開できます。 Lambda 関数を作成し、関数コードを AWS Lambda にアップロードするだけです。
まず、AWS Lambda で関数を作成し、Node.js アプリケーションをアップロードする必要があります。関数を作成するときは、ランタイム環境として Node.js を選択し、アップロード用にコードを ZIP ファイルとしてパッケージ化します。
Lambda 関数が呼び出されると、ローカル コンピューティング環境が起動され、コードが環境にロードされて実行されます。したがって、サーバーを手動で管理する必要はなく、コードだけに集中できます。
この記事では、Node.js アプリケーションをパッケージ化してさまざまなターゲット環境に公開する方法を紹介しました。これには、NPM パッケージ、Docker コンテナー、実行可能ファイル、クラウド プラットフォームにパッケージ化されたサーバーレス サービスが含まれます。最終的なパッケージ化方法は、プロジェクトのニーズと要件に応じて選択する必要があります。アプリケーションに最適な変換方法を選択したら、コードが確実に実行されるようになります。
(この記事で説明されているコードと例は、[GitHub コード リポジトリ](https://github.com/Judith-liu-phy/nodejs-packaging-examples) にあります。)
以上がNodejsをパッケージ化して公開する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。