2017-10-20 21 views
0

Node.jsプラットフォーム用にcommander.jsを使用して簡単なコマンドラインアプリケーションを構築しました。 これを単純な0​​ファイルにコンパイルしたいのですが、これを直接実行できます。私は完全なアプリケーションNode.jsコマンドラインアプリを単一実行ファイルに変換するにはどうすればよいですか?

のための単一の実行可能ファイルを望ん手段

は、これは私のアプリケーションの構造これは、ノードのいくつかの種類せずにノード・アプリケーションを実行することは不可能です

答えて

1
  • これは私が私のNode.jsのコマンドラインアプリケーションをパッケージ化する方法、である
  • これは私のpackage.jsonファイル

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" 
} 
ある npm i -g pkg
  • を使用してpkgモジュールをインストールします。
    • コマンドは、はい、私はnode.exe`パッケージ実行可能ファイルに `埋め込むことが、重要ではありませんmyapp.exe pkg . --target host --output myapp-1.0.0-x64.exe --debug
  • 1

    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 
    

    おかげでランタイムを実行してにする - したがって、あなたのプログラムを配布したいならスタンドアロンの.exeとして、Node自体を上記の実行可能ファイルとコードにバンドルする必要があります。 EncloseJSなど、さまざまなツールが用意されています。単一の実行可能に

    +0

    サイズにmyappをパッケージ化するために使用されるが、どのようにすることができますか? 'babel'コマンドラインツールについて知っていますか?あなたは、単一の実行可能ファイルとしてパッケージ化するための作業例を投稿できますか? –

    +0

    'https:// enclosejs.s3.amazonaws.com/enclose-v0.12.15-win32-5c54091.exe.sha256'からリソースをダウンロードできなかったため、' EncloseJS'を 'Windows'にインストールすることができませんでした。 –

    +0

    @sspsingh:Babel isここでは無関係です。古いバージョンのブラウザ/ Nodeで動作するようにJavaScriptをコンパイルしますが、パッケージ化の方法には影響しません。そのエラーは、ネットワークの問題のように見えます。 –

    関連する問題