Maison > interface Web > js tutoriel > le corps du texte

Comment utiliser pkg pour empaqueter le projet Node.js dans un fichier exécutable ?

青灯夜游
Libérer: 2022-07-29 21:03:34
avant
3800 Les gens l'ont consulté

Comment empaqueter le fichier exécutable nodejs avec pkg ? L'article suivant vous présentera comment utiliser pkg pour empaqueter le projet Node dans un fichier exécutable. J'espère qu'il vous sera utile !

Comment utiliser pkg pour empaqueter le projet Node.js dans un fichier exécutable ?

En utilisant pkg, vous pouvez empaqueter votre projet Node.js dans un fichier exécutable qui peut même être exécuté sur des appareils sans Node.js installé.

Environnement expérimental

  • Système d'exploitation : Windows

  • Version du nœud : 16.14.2

Processus de fonctionnement

  • Télécharger PKG

Nous pouvons choisir le global Pour installer, exécutez dans n'importe quel répertoire :

$ npm install -g pkg
Copier après la connexion
  • Programme de packaging

Écrivez d'abord un programme simple, tel que server.js content

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(3000, () => {
    console.log('Express web app on localhost:3000');
});
Copier après la connexion

Entrez le répertoire racine du projet nodejs et exécutez la commande suivante

$ pkg server.js
Copier après la connexion

La première erreur est signalée

Une erreur sera signalée à ce moment-là

$ pkg server.js
> pkg@5.6.0
> Targets not specified. Assuming:
  node16-linux-x64, node16-macos-x64, node16-win-x64
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-linux-x64          [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-linux-x64"}
> Building base binary from source:
  built-v16.14.2-linux-x64
> Error! Not able to build for 'linux' here, only for 'win'
Copier après la connexion

L'idée générale est que l'environnement actuel ne prend en charge que les fichiers exécutables compilés dans les systèmes Windows, c'est-à-dire win

La commande d'ajustement est :

$ pkg -t win server.js
Copier après la connexion

où -t win équivaut à --targets win, c'est-à-dire que les fichiers sont compilés uniquement pour Windows.

La deuxième erreur est signalée

Une erreur est à nouveau signalée lors de la compilation :

$ pkg -t win server.js
> pkg@5.6.0
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-win-x64            [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
> Building base binary from source:
  built-v16.14.2-win-x64
> Fetching Node.js source archive from nodejs.org...
> Error! AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
Copier après la connexion

L'idée principale est que le fichier binaire correspondant fetched-v16.14.2-win-x64 est manquant dans le cache. téléchargez le fichier correspondant et placez-le dans le cache correspondant Juste le répertoire.

1. Allez sur le site officiel pour télécharger le fichier de version correspondant, par exemple, le mien est node-v16.14.2-win-x64

Adresse du site officiel : https://github.com/vercel/pkg- fetch/releases

Comment utiliser pkg pour empaqueter le projet Node.js dans un fichier exécutable ?

2. Renommez le fichier node-v16.14.2-win-x64 téléchargé à l'étape précédente en fetched-v16.14.2-win-x64 et placez-le dans le répertoire cache de l'utilisateur actuel.

Par exemple, mon répertoire de cache est C:UsersMangoDowner.pkg-cache Après avoir épissé la balise fetch, elle devient le répertoire final. En nous référant aux informations contenues dans le rapport d'erreur, nous pouvons comprendre que la balise est v3.3.

 {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
Copier après la connexion

Nous pouvons obtenir Le répertoire parent final est C:UsersMangoDowner.pkg-cachev3.3,
Donc l'adresse finale du fichier est C:UsersMangoDowner.pkg-cachev3.3fetched-v16.14.2-win-x64

Compilez à nouveau, succès!

$ pkg -t win server.js
> pkg@5.6.0
Copier après la connexion

Pour plus de connaissances sur les nœuds, veuillez visiter : tutoriel Nodejs !

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!