ホームページ ウェブフロントエンド jsチュートリアル ノードパッケージ化ツール Pkg (詳細なチュートリアル)

ノードパッケージ化ツール Pkg (詳細なチュートリアル)

Jun 09, 2018 pm 05:07 PM
node 実行可能ファイル 道具 パック

今回は、ノードベースの実行ファイルパッケージングツール_Pkgの使用体験共有に基づいた記事を共有します。これは参考価値があり、皆様のお役に立てれば幸いです。

プロジェクトアドレス

このプロジェクトは素晴らしいもので、node.jsプロジェクトをWindowsで直接実行できるexeファイルにパッケージ化しています(FreeBSD、Linux、macos、armシステムもサポートしています)。 Node.js をインストールする必要もありませんし、プロジェクト内のコードを変更する必要もありません。

まず pkg

npm install -g pkg
ログイン後にコピー
ログイン後にコピー

をインストールし、プロジェクト ディレクトリで

pkg entrance.js
ログイン後にコピー

を実行して、Linux、MacOS、Win プラットフォーム用の実行可能ファイルをパッケージ化します。 entry.js は、ノード プロジェクトの入り口ファイルです。

Windows 上で exe をパッケージ化するだけの場合は、-t パラメータを追加します。 win は、Windows プラットフォームでパッケージ化された exe ファイルです。特定のオプションのパラメーターについては、プロジェクト ディレクトリを参照してください

pkg -t win entrance.js
ログイン後にコピー

しばらくすると、パッケージ化されたentry.exe ファイルがプロジェクト ディレクトリに生成されます。

pkg は、プロジェクト内のコードを変更せずに、エントリ ファイルから開始して依存ファイルを自動的に検索し、それらをすべてパッケージ化します。

その他

pkgは、package.jsonの下の設定に従ってパッケージ化できます。デフォルトのエントリファイルは、binが指すファイルです。

pkg .
ログイン後にコピー

または

pkg package.json
ログイン後にコピー

を実行すると、package.jsonの設定に従って自動的にパッケージ化されます。

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

注: 静的ファイルは、通常にパッケージ化する前に、プロジェクト内のファイル参照を

path.join(__dirname, 'dist')
ログイン後にコピー

の形式に変更する必要があります。そうしないと、読み取れない可能性があります。

vue-cli を使用してプロジェクトをビルドし、npm run build を使用してプロジェクトをコンパイルし、dist ディレクトリに静的ファイルを生成します。これらはすべて vue-cli に付属する内容なので、詳細は説明しません。

プロジェクト ディレクトリに新しい service.js ファイルを作成し、次のコードを追加して高速静的サーバーをローカルにセットアップし、Web サイトにローカルでアクセスできるようにします (オンラインで展開する場合も同様です)

//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}`)
})
ログイン後にコピー

This At今回は、コンソールで

node service.js
ログイン後にコピー

を実行してサーバーを起動できます。起動が完了したら、ブラウザで http://localhost:8081/ にアクセスして Web サイトを表示します。

次に、他の人の便宜のために、service.js と dist ディレクトリを exe ファイルにパッケージ化します。

まず pkg をインストールします

npm install -g pkg
ログイン後にコピー
ログイン後にコピー

次に、package.json を変更し、bin (サービスでない場合) を追加します。 js) と pkg item

{
 //其他配置项
 "bin": "service.js",//指定入口文件
 "pkg": {
 "assets": [
  "dist/**/*"//指定要打包的静态文件目录
 ]
 }
}
ログイン後にコピー

を作成し、プロジェクト ディレクトリで

pkg -t win package.json
ログイン後にコピー

を実行すると、node service.js を実行したのと同じ exe ファイルが生成されます。ブラウザで (http://localhost:8081/) プロジェクトが詰まっています。事前にノードをインストールする必要がなく、上司へのデモに非常に便利です。

上記は私があなたのためにまとめたものです。

関連記事:

vue+lessを使った簡単なスキン変更機能の実装方法

angular、react、vueを使って同じインタビュー質問コンポーネントを実装する方法

jQueryを使ってスクロール時の自動読み込みを実装する最後へ

Angular2.0でモーダルダイアログボックスを実装する方法

JSでモーションバッファリング効果を実装する方法(詳細なチュートリアル)

以上がノードパッケージ化ツール Pkg (詳細なチュートリアル)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? PHPのCurlライブラリを使用してJSONデータを含むPOSTリクエストを送信する方法は? Apr 01, 2025 pm 03:12 PM

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? ランプアーキテクチャの下でnode.jsまたはPythonサービスを効率的に統合する方法は? Apr 01, 2025 pm 02:48 PM

多くのウェブサイト開発者は、ランプアーキテクチャの下でnode.jsまたはPythonサービスを統合する問題に直面しています:既存のランプ(Linux Apache MySQL PHP)アーキテクチャWebサイトのニーズ...

PHPパフォーマンス分析:Yii2フレームワークの下でExcelのインポートによって引き起こされるメモリオーバーフローと時間のかかる問題を効率的にトラブルシューティングする方法は? PHPパフォーマンス分析:Yii2フレームワークの下でExcelのインポートによって引き起こされるメモリオーバーフローと時間のかかる問題を効率的にトラブルシューティングする方法は? Apr 01, 2025 am 07:54 AM

PHPパフォーマンスのチューニング:メモリのオーバーフローと時間のかかる問題を効率的にトラブルシューティングします。 Excelファイルを生産環境でデータを解析するためにインポートする場合、たとえ...

PHPスクリプトをバックグラウンドで実行し、ENTER経由でプロセスを終了するにはどうすればよいですか? PHPスクリプトをバックグラウンドで実行し、ENTER経由でプロセスを終了するにはどうすればよいですか? Apr 01, 2025 am 07:48 AM

PHPスクリプトにバックグラウンド操作を実装する方法PHPスクリプトを作成するとき、スクリプトをバックグラウンドで実行して、端末セッションを占有しないようにする必要があります。私たちが持っているとしましょう...

APSChedulerタイミングタスクをMACOSのサービスとして構成する方法は? APSChedulerタイミングタスクをMACOSのサービスとして構成する方法は? Apr 01, 2025 pm 06:09 PM

nginと同様に、APSChedulerタイミングタスクをサービスとして構成する場合、APSChedulerタイミングタスクをMACOSプラットフォームでサービスとして構成します...

生産環境の展開:作曲家のロード開発依存関係を避ける方法は? 生産環境の展開:作曲家のロード開発依存関係を避ける方法は? Apr 01, 2025 am 07:36 AM

作曲家の依存関係を効率的に管理する:生産環境で開発依存関係の負荷を回避する方法。 Composerを使用してPHPプロジェクトの依存関係を管理する場合、開発プロセスをしばしば作成します...

Pythonパラメーター注釈は文字列を使用できますか? Pythonパラメーター注釈は文字列を使用できますか? Apr 01, 2025 pm 08:39 PM

Pythonパラメーター注釈の代替使用Pythonプログラミングでは、パラメーターアノテーションは、開発者が機能をよりよく理解して使用するのに役立つ非常に便利な機能です...

See all articles