Maison  >  Article  >  interface Web  >  outil d'empaquetage de nœuds Pkg (tutoriel détaillé)

outil d'empaquetage de nœuds Pkg (tutoriel détaillé)

亚连
亚连original
2018-06-09 17:07:0210868parcourir

Maintenant, je vais partager avec vous un article basé sur le partage d'expérience d'utilisation du fichier exécutable d'empaquetage de nœuds tool_Pkg, qui a une bonne valeur de référence et j'espère qu'il sera utile à tout le monde.

Adresse du projet

Ce projet est incroyable. Il emballe directement le projet node.js dans un fichier exe qui peut être directement. exécuté par Windows (prend également en charge FreeBSD, Linux, Macos, Arm Systems), vous n'avez même pas besoin d'installer Node.js, et vous n'avez pas besoin de modifier le code de votre projet !

Installez d'abord pkg

npm install -g pkg

puis exécutez

pkg entrance.js

dans le répertoire du projet pour empaqueter Linux, Fichiers exécutables pour les plateformes Macos et Win3. Entry.js est le fichier d'entrée de votre projet de nœud.

Si vous souhaitez uniquement packager l'exe sous Windows, ajoutez le paramètre -t. win est un fichier exe emballé sous la plate-forme Windows. Pour les paramètres facultatifs spécifiques, veuillez vous référer au répertoire du projet

pkg -t win entrance.js

Après un certain temps, le fichier Entry.exe emballé sera généré dans le répertoire du projet.

pkg recherchera automatiquement les fichiers dépendants à partir du fichier d'entrée et les empaquetera tous sans modifier aucun code dans le projet.

Autres

pkg peut être empaqueté selon la configuration sous package.json. Le fichier d'entrée par défaut est le fichier pointé par bin.

Exécutez

pkg .

ou

pkg package.json

pour empaqueter automatiquement selon la configuration de package.json.

//package.json
{
 //其他配置项
 "bin": "service.js",//入口文件
 "pkg": {
 "scripts": [
  "build/**/*.js"//需要打包进来的其他js文件,可添加多个
 ],
 "assets": [
  "dist/**/*"//静态文件的目录,可添加多个
 ]
 }
}

Remarque : les fichiers statiques doivent modifier la référence du fichier dans le projet sous la forme

path.join(__dirname, 'dist')

avant de pouvoir être empaquetés normalement, sinon ils risquent de ne pas être lus.

Exemple

Utilisez vue-cli pour construire le projet et utilisez npm run build pour compiler votre projet afin de générer des fichiers statiques dans la distribution annuaire. Ce sont tous les contenus fournis avec vue-cli et ne seront pas décrits en détail.

Créez un nouveau fichier service.js dans le répertoire du projet et ajoutez le code suivant pour configurer localement un serveur statique express afin que vous puissiez accéder à votre site Web localement (le déployer en ligne est similaire)

//service.js
const express = require('express');
const app = express();
const path = require('path');
 
app.use(express.static(path.join(__dirname, 'dist')));//注意这里使用path.join(__dirname, 'dist')而不是'dist',虽然在命令行中执行起来效果是一样的,不过pkg打包会无法识别到dist目录
 
var server = app.listen(8081, function () {
 var host = server.address().address
 var port = server.address().port
 console.log(`AIbuy agents server start successfully on http://${host}:${port}`)
})

À ce stade, vous pouvez exécuter

node service.js

dans la console pour démarrer votre serveur. Une fois le démarrage terminé, le navigateur accède à http://localhost. :8081/ pour consulter votre site Web.

Ensuite, nous utilisons les répertoires service.js et dist pour les regrouper dans un fichier exe pour la commodité des autres

Première installation du paquet

npm install -g pkg
.

Modifiez ensuite package.json, ajoutez bin (si ce n'est pas service.js) et les éléments pkg

{
 //其他配置项
 "bin": "service.js",//指定入口文件
 "pkg": {
 "assets": [
  "dist/**/*"//指定要打包的静态文件目录
 ]
 }
}

puis exécutez

pkg -t win package.json

dans le répertoire du projet pour générer une fois le fichier exe terminé, double-cliquer pour démarrer équivaut à exécuter node service.js, et vous pourrez ensuite accéder au projet packagé dans votre navigateur (http://localhost:8081/) ! Il n'est pas nécessaire d'installer le nœud à l'avance. C'est très pratique pour le démontrer au patron !

Ce qui précède est ce que j'ai compilé pour vous. J'espère que cela vous sera utile à l'avenir.

Articles associés :

Comment utiliser vue + less pour implémenter une fonction simple de changement de skin

Comment utiliser angulaire, réagir et vue pour obtenir le même composant de question d'entretien

Utiliser jQuery pour charger automatiquement lors du défilement vers le bas

Comment implémenter une boîte de dialogue modale dans Angular2 .0

Comment obtenir un effet de mise en mémoire tampon de mouvement dans JS (tutoriel détaillé)

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:
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