pkg打包

7 篇文章 0 订阅

这个项目很神奇,直接将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.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文件,方便他人使用

首先安装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,给老板演示很方便有木有!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
pkg是一个可以将Node.js应用打包成可执行文件的工具。它可以将你的egg项目打包成一个可执行文件,方便在不同的环境中运行。首先,你需要在你的egg项目中创建一个名为build.js的文件,内容如下所示: 'use strict'; const egg = require('egg'); const workers = Number(process.argv || require('os').cpus().length); egg.startCluster({ workers, baseDir: __dirname }); 然后,你可以使用pkg命令对你的egg项目进行打包。具体的使用步骤如下: 1. 首先,确保你已经全局安装了pkg:npm install -g pkg 2. 在你的egg项目根目录下,创建一个名为build.js的文件,并将上述代码复制到build.js文件中。 3. 打开命令行工具,进入到你的egg项目根目录下。 4. 运行以下命令来进行打包: - 如果你的操作系统是Windows:pkg .\build.js --target node10-windows-x64 - 如果你的操作系统是Linux:pkg .\build.js --target node10-linux-x64 注意:上述命令中的node10表示打包的目标Node.js版本,windows-x64和linux-x64表示目标操作系统的架构。 5. 打包成后,你会在你的egg项目根目录下看到生成的可执行文件。 综上所述,使用pkg可以将你的egg项目打包成可执行文件,方便在不同环境中部署和运行。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [pkg对egg项目打包](https://blog.csdn.net/weixin_44637104/article/details/128181127)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值