Maison  >  Article  >  interface Web  >  Parlons de la façon d'utiliser pkg pour empaqueter des projets Node.js dans des fichiers exécutables.

Parlons de la façon d'utiliser pkg pour empaqueter des projets Node.js dans des fichiers exécutables.

青灯夜游
青灯夜游avant
2022-12-02 21:06:014841parcourir

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 !

Parlons de la façon d'utiliser pkg pour empaqueter des projets Node.js dans des fichiers exécutables.

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 sur lesquels Node.js n'est pas installé. [Recommandations de didacticiel associées : Tutoriel vidéo Nodejs]

Environnement expérimental

  • Système d'exploitation : Windows

  • Version du nœud : 16.14.2

Processus de fonctionnement

  • Téléchargez PKG

Nous pouvons choisir de l'installer globalement et de l'exécuter dans n'importe quel répertoire :

$ npm install -g pkg
  • Programme d'emballage

Écrivez d'abord un programme simple, tel que le contenu de server.js

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');
});

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

$ pkg server.js

La première erreur est signalée

À ce moment, une erreur sera signalée

$ 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'

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, qui Autrement dit, les instructions d'ajustement de win

sont :

$ pkg -t win server.js

où -t win est équivalent à --targets win, ce qui signifie 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:

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

Parlons de la façon dutiliser pkg pour empaqueter des projets Node.js dans des fichiers exécutables.

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"}

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer