2017-10-20 42 views
0

J'ai construit une application de ligne de commande simple en utilisant commander.js pour la plate-forme Node.js. Maintenant, je veux le compiler au fichier exe simple, que je peux exécuter directement.Comment convertir une application de ligne de commande Node.js en un seul exécutable?

signifie que je veux seul fichier exécutable pour l'application complète

C'est ma structure d'application

APP_ROOT 
    | - package.json 
    | - node_modules 
    | - node_modules/.bin/myapp.bat 
    | - node_modules/myapp/bin/myapp 
    | - node_modules/myapp/bin/myapp-action1 
    | - node_modules/myapp/bin/myapp-action2 

Merci

Répondre

1
  • Ceci est, comment i Mon Node.js application de ligne de commande pour seul exécutable
  • Installez le module pkg utilisant npm i -g pkg
  • Ceci est mon package.json fichier

JSON

{ 
    "name": "my-app-exe", 
    "version": "1.0.0", 
    "description": "Myapp-Cli tool as executable", 
    "main": "index.js", 
    "scripts": { 
    "test": "echo \"Error: no test specified\" && exit 1" 
    }, 
    "keywords": [ 
    "myapp", 
    "cli", 
    "exe" 
    ], 
    "author": "Shisht", 
    "license": "MIT", 
    "devDependencies": { 
    "myapp": "1.0.0" 
    }, 
    "bin": "node_modules/myapp-cli/bin/cli", 
    "pkg": { 
    "assets": "node_modules/**/*" 
    }, 
    "help": "pkg . --target host --output myapp-1.0.0-x64.exe --debug" 
} 
  • Commande utilisé pour emballer myapp à myapp.exe pkg . --target host --output myapp-1.0.0-x64.exe --debug
1

Il est impossible d'exécuter une application de nœud sans une sorte de noeud runtime pour l'exécuter sur - par conséquent, si vous souhaitez distribuer votre programme En tant que .exe autonome, vous devrez regrouper Node lui-même dans ledit exécutable ainsi que votre code. Il existe divers outils qui le feront pour vous, tels que EncloseJS.

+0

Taille ne comptent pas, Oui je dois intégrer 'node.exe' dans exécutable emballé, mais comment? Connaissez-vous l'outil de ligne de commande 'babel'? Pouvez-vous s'il vous plaît envoyer un exemple de travail pour le mettre en package en tant qu'exécutable? –

+0

'EncloseJS' n'a pas pu être installé sur' Windows' car le téléchargement de la ressource a échoué depuis 'https: // enclosejs.s3.amazonaws.com/enclose-v0.12.15-win32-5c54091.exe.sha256' –

+0

@sspsingh: Babel est inutile ici - il va compiler votre JavaScript pour travailler avec les anciennes versions du navigateur/nœud, mais il n'a aucun impact sur la façon dont vous le paquetiez. Cette erreur ressemble à un problème avec votre réseau. –