基於node打包可執行檔工具_Pkg使用心得分享,node_pkg

來源:互聯網
上載者:User

基於node打包可執行檔工具_Pkg使用心得分享,node_pkg

項目地址

這個項目很神奇,直接將node.js項目打包成windows可以直接執行的exe檔案(也支援FreeBSD、linux、macos、arm系統),甚至不需要安裝Node.js,且無須修改你項目中的任何代碼!

首先安裝pkg

npm 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.jsconst 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檔案,方便他人使用

首先安裝pkg

npm 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,給老闆示範很方便有木有!

以上這篇基於node打包可執行檔工具_Pkg使用心得分享就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援幫客之家。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.