欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

NodeJS項(xiàng)目如何打包成可執(zhí)行文件

 更新時(shí)間:2023年10月30日 10:58:53   作者:subsistent  
這篇文章主要介紹了NodeJS項(xiàng)目如何打包成可執(zhí)行文件問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

引言

我們都知道nodejs的項(xiàng)目本身是沒(méi)辦法編譯成二進(jìn)制可執(zhí)行文件的,這給我們很多的業(yè)務(wù)場(chǎng)景造成了一些問(wèn)題,比如要給客戶演示程序的時(shí)候,可能還得安裝node環(huán)境,然后在安裝一堆的依賴包,這還必須是網(wǎng)絡(luò)環(huán)境較好的情況下,而有時(shí)候,一般企業(yè)如果安全看的特別重,限制在局域網(wǎng)內(nèi)訪問(wèn)互聯(lián)網(wǎng),那么連包都沒(méi)辦法安裝,顯然對(duì)于你和對(duì)于客戶都是不友好的情景。

還有一種情況:如果我們演示項(xiàng)目時(shí),把代碼交給對(duì)方部署,我們自己也不放心?。篘odejs代碼是明文JS代碼,代碼泄露怎么辦?

當(dāng)然,防代碼泄露可以用JShaman平臺(tái)對(duì)JS代碼進(jìn)行混淆加密。

pkg可以直接將nodejs項(xiàng)目打包成可執(zhí)行文件,直接可以在沒(méi)有node環(huán)境下的freebsd,linux,alpine,macos,win上運(yùn)行。

pkg打包的原理

pkg實(shí)際上并不是直接將程序轉(zhuǎn)換成可執(zhí)行文件,而是將node環(huán)境一起打包到了程序中,這樣就可以做到不用在沒(méi)有node環(huán)境下的電腦上運(yùn)行node項(xiàng)目了,是不是很方便。

下面我就將帶領(lǐng)大家一起來(lái)看下如何使用pkg打包。

測(cè)試用例使用的是nodejs的express

使用場(chǎng)景

  • 在沒(méi)有來(lái)源的情況下制作商業(yè)版的應(yīng)用程序
  • 在沒(méi)有來(lái)源的情況下制作應(yīng)用的演示/評(píng)估/試用版
  • 立即為其他平臺(tái)制作可執(zhí)行文件(交叉編譯)
  • 制作某種自解壓存檔或安裝程序
  • 無(wú)需安裝Node.js和npm來(lái)運(yùn)行打包的應(yīng)用程序
  • 無(wú)需下載無(wú)數(shù)個(gè)文件npm install來(lái)部署您的應(yīng)用程序。將其部署為單個(gè)文件
  • 將您的資產(chǎn)放在可執(zhí)行文件中,使其更具可移植性
  • 針對(duì)新的Node.js版本測(cè)試您的應(yīng)用程序而不安裝它

舉例

簡(jiǎn)單看下項(xiàng)目的目錄結(jié)構(gòu)和代碼,首先你得初始化一個(gè)express項(xiàng)目,添加express的依賴

運(yùn)行一些index.js文件,瀏覽器打開(kāi)看下效果

我們這是直接在項(xiàng)目中運(yùn)行的,結(jié)果如上圖所示,現(xiàn)在我們的項(xiàng)目還是一個(gè)js文件,然后相互依賴,接下來(lái)我們使用pkg

安裝(因?yàn)殡娔X是windows系統(tǒng),就在windows系統(tǒng)下運(yùn)行)

安裝非常簡(jiǎn)單,需要全局安裝

npm install -g pkg

然后我們使用pkg --help先看下有哪些可用的命令

pkg可以一次為多個(gè)目標(biāo)計(jì)算機(jī)生成可執(zhí)行文件。

可以通過(guò)--targets 選項(xiàng)指定以逗號(hào)分隔的目標(biāo)列表。規(guī)范目標(biāo)由3個(gè)元素組成,例如用短劃線分隔,node6-macos-x64或者node4-linux-armv6

配置

打包過(guò)程中pkg會(huì)解析項(xiàng)目中的資源,檢測(cè)到require,遍歷項(xiàng)目的依賴項(xiàng)并將它們包含到可執(zhí)行文件中。

有些時(shí)候我們需要手動(dòng)加入資源文件路徑,比如我們這個(gè)項(xiàng)目中的views,我們需要改一下package.json

"pkg": { "assets": "views/**/*" }

打包(命令很簡(jiǎn)單)

pkg index.js

然后需要等待一段時(shí)間,最終結(jié)果如下

我們打開(kāi)我們的index-win.exe測(cè)試下

運(yùn)行成功,然后打開(kāi)瀏覽器,和之前一樣的效果

總結(jié)

pgk是一個(gè)將nodejs項(xiàng)目打包成可執(zhí)行文件的工具,我們可以用它做很多事情,本文只是簡(jiǎn)單舉例,更多復(fù)雜的配置,可以配合官網(wǎng)介紹,然后運(yùn)用到自己項(xiàng)目中。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用Node操作MySQL的兩種方式

    使用Node操作MySQL的兩種方式

    本文將介紹如何在?Node.js?應(yīng)用中使用?mysql2?和?TypeORM?兩種方式操作?MySQL?數(shù)據(jù)庫(kù),文中通過(guò)代碼示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • node安裝及環(huán)境變量配置詳細(xì)教程

    node安裝及環(huán)境變量配置詳細(xì)教程

    在很多前端項(xiàng)目中都需要配置node的環(huán)境變量,下面這篇文章主要給大家介紹了關(guān)于node安裝及環(huán)境變量配置的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • 詳解Node.js 中使用 ECDSA 簽名遇到的坑

    詳解Node.js 中使用 ECDSA 簽名遇到的坑

    這篇文章主要介紹了詳解Node.js 中使用 ECDSA 簽名遇到的坑,主要是使用 Node.js 的 Crypto 模塊無(wú)法校驗(yàn)網(wǎng)絡(luò)傳輸過(guò)來(lái)的簽名結(jié)果,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 使用 NodeJS+Express 開(kāi)發(fā)服務(wù)端的簡(jiǎn)單介紹

    使用 NodeJS+Express 開(kāi)發(fā)服務(wù)端的簡(jiǎn)單介紹

    這篇文章主要介紹了使用 NodeJS+Express 開(kāi)發(fā)服務(wù)端的簡(jiǎn)單介紹,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-04-04
  • 原生node.js案例--前后臺(tái)交互

    原生node.js案例--前后臺(tái)交互

    本文主要介紹了原生node.js案例--前后臺(tái)交互。本案例包含4部分:(1)HTML部分;(2)ajax部分;(3)JavaScript部分;(4)node服務(wù)器部分。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • Node使用Nodemailer發(fā)送郵件的方法實(shí)現(xiàn)

    Node使用Nodemailer發(fā)送郵件的方法實(shí)現(xiàn)

    這篇文章主要介紹了Node使用Nodemailer發(fā)送郵件的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解

    nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解

    這篇文章主要介紹了nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解,需要的朋友可以參考下
    2014-11-11
  • 14款NodeJS Web框架推薦

    14款NodeJS Web框架推薦

    這篇文章主要介紹了14款NodeJS Web框架推薦,其中大多數(shù)框架都是基于node.js的Express實(shí)現(xiàn),需要的朋友可以參考下
    2014-07-07
  • Mac中安裝nvm的教程分享

    Mac中安裝nvm的教程分享

    下面小編就為大家分享一篇Mac中安裝nvm的教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2017-12-12
  • Angularjs---項(xiàng)目搭建圖文教程

    Angularjs---項(xiàng)目搭建圖文教程

    下面小編就為大家?guī)?lái)一篇Angularjs---項(xiàng)目搭建圖文教程。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-07

最新評(píng)論