Node.js ist eine sehr beliebte Entwicklungsplattform und genießt bei Entwicklern ein hohes Ansehen. Bei der Entwicklung einer Node.js-Anwendung müssen wir darüber nachdenken, sie in eine Form zu packen, die in anderen Umgebungen verwendet werden kann. In diesem Artikel wird erläutert, wie Sie Node.js-Anwendungen in verschiedenen Umgebungen packen und veröffentlichen.
Bevor wir mit dem Packen und Veröffentlichen der Node.js-Anwendung beginnen, müssen wir eine grundlegende Node.js-Anwendung erstellen. Eine sehr einfache Methode wird hier nur zu Bildungszwecken bereitgestellt. Wir beginnen mit der Erstellung einer einfachen Verzeichnisstruktur und fügen dann zwei Dateien zum Projekt hinzu. Die erste Datei ist server.js
, die zum Erstellen eines HTTP-Servers verwendet wird. Die zweite Datei ist package.json
, die die Metadateninformationen und Abhängigkeiten unserer Anwendung angibt. server.js
,它将用于创建一个 HTTP 服务器。第二个文件是 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" } }
这是一个非常基本的 Node.js 应用程序,它仅使用 HTTP 模块创建了一个服务器并返回 "Hello, World!",还使用了 Express 库,用于更轻松地处理 HTTP 请求。
要打包并发布 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
# 使用 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" ]
# 创建并运行容器 docker build -t my-node-app . docker run -p 80:3000 -d my-node-app
npm pack
aus und wir erhalten eine Paketdatei .tgz
, die unseren Code und andere notwendige Dateien enthält. # 全局安装 pkg 模块 npm install -g pkg
.tgz
kann direkt in anderen Projekten installiert und verwendet werden oder für andere Entwickler in die [NPM-Registrierung] (https://www.npmjs.com/) hochgeladen werden Herunterladen und verwenden. Um ein NPM-Paket zu veröffentlichen, müssen Sie ein Konto in der [NPM-Registrierung](https://www.npmjs.com/) erstellen und sich mit dem Befehl npm login
anmelden. # 打包成可执行文件 pkg . --output my-node-app.exe
rrreee
Mit dem obigen Befehl haben wir die Node.js-Anwendung erfolgreich in ein Docker-Image gepackt und erfolgreich im Container ausgeführt. 2.3. Packen in eine ausführbare ServerdateiMit dem [pkg](https://github.com/vercel/pkg)-Tool können wir die Node.js-Anwendung in eine ausführbare Datei packen. Dieses Tool ermöglicht die Ausführung unserer Anwendung ohne die Installation von Node.js oder NPM und die Verwaltung von Abhängigkeiten ist sehr einfach. Verwenden Sie zunächst npm, um das PKG-Tool zu installieren.rrreee
2.4. Packen in serverlose Dienste für Cloud-PlattformenAuf Cloud-Plattformen besteht die beste Möglichkeit, Node.js-Anwendungen zu packen, darin, serverlose Dienste zu erstellen. Dieser Ansatz vermeidet den Aufwand der Infrastruktur- und Netzwerkverwaltung und ermöglicht bei Bedarf eine adaptive Skalierung. 🎜🎜Mit dem AWS Lambda-Service können Sie beispielsweise Node.js-Anwendungen verpacken und veröffentlichen, ohne selbst virtuelle Maschinen oder Server verwalten zu müssen. Erstellen Sie einfach eine Lambda-Funktion und laden Sie den Funktionscode auf AWS Lambda hoch. 🎜🎜Zuerst müssen wir eine Funktion in AWS Lambda erstellen und unsere Node.js-Anwendung hochladen. Wählen Sie beim Erstellen der Funktion Node.js als Laufzeitumgebung aus und verpacken Sie dann unseren Code als ZIP-Datei zum Hochladen. 🎜🎜Wenn die Lambda-Funktion aufgerufen wird, wird die lokale Computerumgebung gestartet und der Code zur Ausführung in die Umgebung geladen. Daher müssen wir den Server nicht manuell verwalten und uns nur auf den Code konzentrieren. 🎜🎜Fazit🎜🎜In diesem Artikel haben wir vorgestellt, wie man Node.js-Anwendungen verpackt und in verschiedenen Zielumgebungen veröffentlicht. Dazu gehören serverlose Dienste, die in NPM-Paketen, Docker-Containern, ausführbaren Dateien und Cloud-Plattformen verpackt sind. Die letztendlich gewählte Verpackungsmethode sollte von den Bedürfnissen und Anforderungen des Projekts abhängen. Nachdem Sie die für Ihre Anwendung am besten geeignete Konvertierungsmethode ausgewählt haben, können Sie sicher sein, dass Ihr Code ausgeführt wird. 🎜🎜 (Der in diesem Artikel erwähnte Code und die Beispiele finden Sie im [GitHub-Repository](https://github.com/Judith-liu-phy/nodejs-packaging-examples).) 🎜Das obige ist der detaillierte Inhalt vonSo verpacken und veröffentlichen Sie NodeJS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!