Node.js est une plateforme de développement très populaire et jouit d'une grande réputation auprès des développeurs. Lors du développement d'une application Node.js, nous devons envisager de la conditionner sous une forme pouvant être utilisée dans d'autres environnements. Cet article explique comment empaqueter et publier des applications Node.js dans différents environnements.
Avant de commencer à empaqueter et à publier l'application Node.js, nous devons créer une application Node.js de base. Une méthode très basique est proposée ici à des fins pédagogiques uniquement. Nous commençons par créer une structure de répertoires simple, puis ajoutons deux fichiers au projet. Le premier fichier est server.js
, qui sera utilisé pour créer un serveur HTTP. Le deuxième fichier est package.json
, qui spécifie les informations de métadonnées et les dépendances de notre application. 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
et nous obtiendrons un fichier de package .tgz
qui contient notre code et d'autres fichiers nécessaires. # 全局安装 pkg 模块 npm install -g pkg
.tgz
peut être installé et utilisé directement dans d'autres projets, ou téléchargé dans le [registre NPM](https://www.npmjs.com/ ) pour que d'autres développeurs puissent le télécharger et l'utiliser. Pour publier un package NPM, vous devez créer un compte dans le [registre NPM](https://www.npmjs.com/) et vous connecter à l'aide de la commande npm login
. # 打包成可执行文件 pkg . --output my-node-app.exe
rrreee
À l'aide de la commande ci-dessus, nous avons réussi à empaqueter l'application Node.js dans une image Docker et à l'exécuter avec succès dans le conteneur. 2.3. Package dans un fichier exécutable du serveur À l'aide de l'outil [pkg](https://github.com/vercel/pkg), nous pouvons appliquer Node.js Les programmes sont présentés sous forme de fichiers exécutables. Cet outil permet d'exécuter notre application sans installer Node.js ou NPM, et la gestion des dépendances est très simple. Tout d'abord, utilisez npm pour installer l'outil pkg.rrreee
2.4. Packaging dans des services sans serveur pour les plateformes cloud Dans les plateformes cloud, la meilleure façon de packager des applications Node.js est de créer des services sans serveur. Cette approche évite les tracas liés à la gestion de l'infrastructure et du réseau et permet une mise à l'échelle adaptative en cas de besoin. #🎜🎜##🎜🎜#Par exemple, en utilisant le service AWS Lambda, vous pouvez empaqueter et publier des applications Node.js sans avoir à gérer vous-même des machines virtuelles ou des serveurs. Créez simplement une fonction Lambda et téléchargez le code de la fonction sur AWS Lambda. #🎜🎜##🎜🎜#Tout d'abord, nous devons créer une fonction dans AWS Lambda et télécharger notre application Node.js. Lors de la création de la fonction, sélectionnez Node.js comme environnement d'exécution, puis conditionnez notre code sous forme de fichier ZIP pour le téléchargement. #🎜🎜##🎜🎜#Lorsque la fonction Lambda est appelée, l'environnement informatique local est démarré et le code est ensuite chargé dans cet environnement pour s'exécuter. Par conséquent, nous n’avons pas besoin de gérer manuellement le serveur et de nous concentrer uniquement sur le code. #🎜🎜##🎜🎜#Conclusion#🎜🎜##🎜🎜#Dans cet article, nous avons présenté comment empaqueter et publier des applications Node.js dans différents environnements cibles. Cela inclut les services sans serveur regroupés dans des packages NPM, des conteneurs Docker, des exécutables et des plates-formes cloud. La méthode d'emballage finale choisie doit dépendre des besoins et des exigences du projet. Après avoir choisi la méthode de conversion la mieux adaptée à votre application, vous pouvez être sûr que votre code s'exécutera. #🎜🎜##🎜🎜# (Le code et les exemples mentionnés dans cet article peuvent être trouvés dans le [dépôt de code GitHub](https://github.com/Judith-liu-phy/nodejs-packaging-examples). ) #🎜🎜#Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!