pkg-php,node打包工具Pkg(详细教程)
下面我就為大家分享一篇基于node打包可執行文件工具_Pkg使用心得分享,具有很好的參考價值,希望對大家有所幫助。
項目地址
這個項目很神奇,直接將node.js項目打包成windows可以直接執行的exe文件(也支持FreeBSD、linux、macos、arm系統),甚至不需要安裝Node.js,且無須修改你項目中的任何代碼!
首先安裝pkgnpm install -g pkg
然后在項目目錄下執行pkg entrance.js
即可打包linux,macos,win3個平臺的可執行文件。entrance.js為你node項目的入口文件。
如果只想打包windows下的exe,則加上-t參數。win即為打包成windows平臺下的exe文件,具體可選參數參見項目目錄pkg -t win entrance.js
稍等片刻后項目目錄下就會生成打包好的entrance.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文件,并添加以下代碼,在本地起一個express靜態服務器,使你能夠在本地訪問你的網站(部署到線上也是類似)
//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}`)
})
此時你可以在控制臺執行node service.js
來啟動你的服務器了,啟動完成后,瀏覽器訪問http://localhost:8081/即可查看你的網站。
接下來我們使用將service.js和dist目錄打包成一個exe文件,方便他人使用
首先安裝pkgnpm install -g pkg
然后修改package.json,添加bin(如果不是service.js的話)和pkg項{
//其他配置項
"bin": "service.js",//指定入口文件
"pkg": {
"assets": [
"dist/**/*"//指定要打包的靜態文件目錄
]
}
}
然后在項目目錄下執行pkg -t win package.json
完成后即生成一個exe文件,雙擊啟動即相當于執行node service.js,然后你瀏覽器里(http://localhost:8081/)就能訪問打包好的項目了!也不需要提前安裝node,給老板演示很方便有木有!
上面是我整理給大家的,希望今后會對大家有幫助。
相關文章:
總結
以上是生活随笔為你收集整理的pkg-php,node打包工具Pkg(详细教程)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 人活着就是为了改变世界,不要把时间浪费在
- 下一篇: 如何看待多所985高校开设人工智能专业?