Heim  >  Artikel  >  Web-Frontend  >  Wie verwende ich pkg, um das Node.js-Projekt in eine ausführbare Datei zu packen?

Wie verwende ich pkg, um das Node.js-Projekt in eine ausführbare Datei zu packen?

青灯夜游
青灯夜游nach vorne
2022-07-26 19:33:143755Durchsuche

Wie packe ich die ausführbare Datei von nodejs mit pkg? Im folgenden Artikel erfahren Sie, wie Sie mit pkg das Node-Projekt in eine ausführbare Datei packen. Ich hoffe, es hilft Ihnen weiter!

Wie verwende ich pkg, um das Node.js-Projekt in eine ausführbare Datei zu packen?

Mit pkg können Sie Ihr Node.js-Projekt in eine ausführbare Datei packen, die sogar auf Geräten ausgeführt werden kann, auf denen Node.js nicht installiert ist.

Experimentelle Umgebung

  • Betriebssystem: Windows

  • Knotenversion: 16.14.2

Betrieb. Prozess

  • PKG herunterladen

Wir können das auswählen global Zum Installieren in einem beliebigen Verzeichnis ausführen:

$ npm install -g pkg
  • Paketprogramm

Schreiben Sie zunächst ein einfaches Programm, z. B. den Inhalt von 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');
});

Geben Sie das Stammverzeichnis des NodeJS-Projekts ein und führen Sie den folgenden Befehl aus

$ pkg server.js

Der erste Fehler wird gemeldet.

Zu diesem Zeitpunkt wird ein Fehler gemeldet

$ 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'
wobei -t win äquivalent zu --targets win ist, das heißt, die Dateien werden nur für Windows kompiliert.

Der zweite Fehler wird gemeldet

Beim Kompilieren wird erneut ein Fehler gemeldet:

$ pkg -t win server.js
Die Hauptidee ist, dass die entsprechende Binärdatei fetched-v16.14.2-win-x64 im Cache fehlt Laden Sie die entsprechende Datei herunter und legen Sie sie im entsprechenden Cache ab. 1. Gehen Sie zur

offiziellen Website

, um die entsprechende Versionsdatei herunterzuladen, meine ist beispielsweise node-v16.14.2-win-x64

Offizielle Website-Adresse: https://github.com/vercel/pkg- fetch/releases

2. Benennen Sie die im vorherigen Schritt heruntergeladene Datei node-v16.14.2-win-x64 in fetched-v16.14.2-win-x64 um und legen Sie sie im Cache-Verzeichnis des aktuellen Benutzers ab.

Mein Cache-Verzeichnis ist beispielsweise Wie verwende ich pkg, um das Node.js-Projekt in eine ausführbare Datei zu packen?C:UsersMangoDowner.pkg-cache

Nach dem Zusammenfügen des Abruf-Tags wird es zum endgültigen Verzeichnis. Anhand der Informationen im Fehlerbericht können wir erkennen, dass es sich bei dem Tag um v3.3 handelt

$ 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:
Wir können erhalten. Das endgültige übergeordnete Verzeichnis lautet C:UsersMangoDowner.pkg-cachev3.3.

Die endgültige Dateiadresse lautet also C:UsersMangoDowner.pkg-cachev3.3fetched-v16.14.2-win-x64. Erneut kompilieren. Erfolg!

 {"tag":"v3.3","name":"node-v16.14.2-win-x64"}

Weitere Informationen zu Knoten finden Sie unter:
nodejs-Tutorial

!

Das obige ist der detaillierte Inhalt vonWie verwende ich pkg, um das Node.js-Projekt in eine ausführbare Datei zu packen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen