Comment empaqueter et publier nodejs
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.
1. Créer une application Node.js de base
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 请求。
2. 打包和发布 Node.js 应用的方式
要打包并发布 Node.js 应用程序,我们需要考虑目标环境和用途。下面介绍几种打包和发布 Node.js 应用程序的常用方法。
2.1. 打包成 NPM 包
从其出现以来,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
Copier après la connexion
Le fichier # 全局安装 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
Exécutez la commande suivante dans le répertoire où se trouve le fichier Dockerfile pour générer un conteneur Docker.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
Ensuite, exécutez la commande suivante dans le terminal pour empaqueter et générer le fichier exécutable.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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

L'article traite de l'utilisation Effecte dans React, un crochet pour gérer les effets secondaires comme la récupération des données et la manipulation DOM dans les composants fonctionnels. Il explique l'utilisation, les effets secondaires courants et le nettoyage pour éviter des problèmes comme les fuites de mémoire.

L'article explique l'algorithme de réconciliation de React, qui met à jour efficacement le DOM en comparant les arbres DOM virtuels. Il traite des avantages de la performance, des techniques d'optimisation et des impacts sur l'expérience utilisateur. Compte de charge: 159

Les fonctions d'ordre supérieur dans JavaScript améliorent la concision du code, la réutilisabilité, la modularité et les performances par abstraction, modèles communs et techniques d'optimisation.

L'article traite du curry dans JavaScript, une technique transformant les fonctions mulguments en séquences de fonctions à argument unique. Il explore la mise en œuvre du currying, des avantages tels que des applications partielles et des utilisations pratiques, améliorant le code

L'article explique UseContext dans React, qui simplifie la gestion de l'État en évitant le forage des accessoires. Il traite des avantages tels que les améliorations centralisées de l'État et des performances grâce à des redevances réduites.

L'article discute de la connexion des composants React à Redux Store à l'aide de Connect (), expliquant MapStateToproprop, MapDispatchToprops et des impacts de performances.

L'article discute de la prévention des comportements par défaut dans les gestionnaires d'événements à l'aide de la méthode empêchée dedEfault (), de ses avantages tels que une expérience utilisateur améliorée et des problèmes potentiels tels que les problèmes d'accessibilité.

L'article traite des avantages et des inconvénients des composants contrôlés et incontrôlés dans la réaction, en se concentrant sur des aspects tels que la prévisibilité, la performance et les cas d'utilisation. Il conseille les facteurs à considérer lors du choix entre eux.
