Bagaimana untuk membungkus fail boleh laku nodejs dengan pkg? Artikel berikut akan memperkenalkan kepada anda cara menggunakan pkg untuk membungkus projek Node ke dalam fail boleh laku, saya harap ia akan membantu anda!
Menggunakan pkg, projek Node.js boleh dibungkus sebagai fail boleh laku, malah boleh dijalankan pada peranti yang tidak mempunyai Node. js dipasang.
Persekitaran eksperimen
Sistem pengendalian: tingkap
versi nod : 16.14.2
Proses operasi
Muat turun PKG
Kita boleh memilih untuk memasangnya secara global dan melaksanakannya dalam mana-mana direktori:
$ npm install -g pkg
Program pembungkusan
Pertama tulis atur cara mudah, seperti kandungan server.js
const express = require('express'); const app = express(); app.get('/', (req, res) => { res.send('Hello World!'); }); app.listen(3000, () => { console.log('Express web app on localhost:3000'); });
Masukkan direktori akar projek nodejs dan laksanakan arahan berikut
$ pkg server.js
Ralat pertama dilaporkan
Ralat akan dilaporkan pada masa ini
$ pkg server.js > pkg@5.6.0 > Targets not specified. Assuming: node16-linux-x64, node16-macos-x64, node16-win-x64 > Fetching base Node.js binaries to PKG_CACHE_PATH fetched-v16.14.2-linux-x64 [ ] 0%> Not found in remote cache: {"tag":"v3.3","name":"node-v16.14.2-linux-x64"} > Building base binary from source: built-v16.14.2-linux-x64 > Error! Not able to build for 'linux' here, only for 'win'
Idea umum ialah persekitaran semasa hanya menyokong fail boleh laku yang disusun ke dalam sistem windows, iaitu kemenangan
arahan pelarasan ialah:
$ pkg -t win server.js
Antaranya, -t win adalah bersamaan dengan --targets win, yang bermaksud bahawa fail hanya disusun untuk tingkap.
Ralat kedua telah dilaporkan
Ralat dilaporkan sekali lagi semasa penyusunan:
$ pkg -t win server.js > pkg@5.6.0 > Fetching base Node.js binaries to PKG_CACHE_PATH fetched-v16.14.2-win-x64 [ ] 0%> Not found in remote cache: {"tag":"v3.3","name":"node-v16.14.2-win-x64"} > Building base binary from source: built-v16.14.2-win-x64 > Fetching Node.js source archive from nodejs.org... > Error! AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
Idea utama ialah fail binari yang sepadan diambil -v16.14.2 tiada dari cache -win-x64, kami hanya perlu memuat turun fail yang sepadan dan meletakkannya dalam direktori cache yang sepadan.
1. Pergi ke laman web rasmi untuk memuat turun fail versi yang sepadan Contohnya, saya ialah node-v16.14.2-win-x64
Alamat tapak web rasmi: https://github.com /vercel/pkg-fetch/releases
2. Namakan semula fail nod-v16.14.2-win-x64 yang dimuat turun dalam langkah sebelumnya kepada fetched-v16.14.2-win -x64, letakkannya dalam direktori cache pengguna semasa.
Sebagai contoh, direktori cache saya ialah C:UsersMangoDowner.pkg-cache Selepas menyambung teg ambil, ia menjadi direktori terakhir Rujuk kepada maklumat dalam laporan ralat dan anda boleh dapatkan bahawa teg itu ialah v3.3
{"tag":"v3.3","name":"node-v16.14.2-win-x64"}
Kita boleh mendapatkan direktori induk akhir sebagai C:UsersMangoDowner.pkg-cachev3.3,
jadi alamat fail terakhir ialah C:UsersMangoDowner.pkg -cachev3.3fetched-v16. 14.2-win-x64
Kompil semula, berjaya!
$ pkg -t win server.js > pkg@5.6.0
Untuk lebih banyak pengetahuan berkaitan nod, sila lawati: tutorial nodejs!
Atas ialah kandungan terperinci Bagaimana untuk menggunakan pkg untuk membungkus projek Node.js ke dalam fail boleh laku?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!