基于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.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,给老板演示很方便有木有!

以上这篇基于node打包可执行文件工具_Pkg使用心得分享就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • 基于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即

  • 基于node的cli工具开发使用详解

    目录 前言 背景 功能特性 效果预览 插件开发 使用 实现原理 使用到的工具 package.json web-cli.ts service.ts create.ts 前言 如果文章对你有帮助的话,记得一键三连哟.有问题和疑惑的话也可以在评论区留言.我会第一时间回复大家,如果觉得我的文章哪里有知识点错误的话,也恳请能够告知,把错的东西理解成对的,无论在什么行业,都是致命的. 背景 公司内部有维护admin和h5两套基础模版,但是每次新项目需要打开gitlab找git地址 clone,稍微有点麻烦

  • Node.js打包管理工具NPM用法

    目录 一.NPM使用介绍 二.NPM全局安装和本地安装 本地安装: 全局安装: 本地安装与全局安装命令: 三.npm安装package.json 四.npm安装模块 五.模块的其他操作 六.版本号 七.npm常用命令 八.使用淘宝的npm镜像 九.安装报错 一.NPM使用介绍 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: (1)允许用户从NPM服务器下载别人编写的第三方包到本地使用. (2)允许用户从NPM服务器下载并安装别人编

  • 基于Node.js实现压缩和解压缩的方法

    压缩格式 zip 和 gzip 是两种我们最常见到的压缩格式,当然,gzip 在 Windows 下很少有人接触. tar 是一种归档格式,它默认不会压缩,需要结合 gzip 来将最终的 tar 文件以 gzip 格式压缩成为一个 tar.gz 文件,通常我们会缩写为 tgz. 为什么没有提到 rar?因为它是专利保护的算法,你可以免费获得解压工具,而压缩工具是需要付费的.所以我们一般应用场景下,很少会提供 rar 压缩文件. 本文将分别介绍 gzip,tar,tgz 和 zip 的压缩和解压缩

  • 基于Pyinstaller打包Python程序并压缩文件大小

    这段时间应老师的要求,给实验室写了一个基于 PyQt5 的小工具.然而源码发过去人家还不要,一定要打包成可执行软件. 那就打包呗,刚好以前对 Pyinstaller 有一点接触,就用了一下这玩意.这篇博文主要记录一下基本用法和踩得一些坑. 1. 用 Pyinstaller 打包 Python 程序 首先我们需要安装 Pyinstaller: pip install pyinstaller 用 conda 也行,不过貌似最近清华的 Anaconda 源被封了,也不知道什么时候解禁. Pyinsta

  • Python打包可执行文件的方法详解

    本文实例讲述了Python打包可执行文件的方法.分享给大家供大家参考,具体如下: Python程序需要依赖本机安装的Python库,若想在没有安装Python的机器上运行,则需要打包分发,目前有两个比较好用的工具:PyInstaller和py2exe.其中py2exe应用在windows下,而PyInstall则可应用windows.Linux以及Mac OS X上. 这里只贴一段py2exe打包的实例代码.(py2exe下载地址) #coding=utf-8 from distutils.co

  • 基于node.js实现微信支付退款功能

    缘起 有付款就会有退款 注意,退款支持部分退款 左口袋的钱退到右口袋罗 这次发起的退款请求0.01元是实时到账的,因此,用户在小程序端发起的退款只是一个请求到后台,后台审核人员审核无误后才后微信发起退款操作. 引入第三方module 在package.json 中加入"weixin-pay": "^1.1.7"这一条 代码目录结构 入参 { transaction_id: '4200000005201712165508745023', // 交易 out_trade

  • node命令行工具之实现项目工程自动初始化的标准流程

    一.目的 传统的前端项目初始流程一般是这样: 可以看出,传统的初始化步骤,花费的时间并不少.而且,人工操作的情况下,总有改漏的情况出现.这个缺点有时很致命. 甚至有马大哈,没有更新项目仓库地址,导致提交代码到旧仓库,这就很尴尬了... 基于这些情况,编写命令行工具(CLI)的目的就很明确: 用于新项目工程的初始化利用工具进行初始化,可以节省项目初期的准备时间避免出现改漏的情况杜绝未更新项目版本仓库地址的问题 以下是新的流程示意图: 二.自动化流程分析 以下是自动化流程图: 从流程图可以得出两个重

  • 基于node的tcp客户端和服务端的简单通信

    目录 1.简单介绍下TCP/IP 2.服务端编程 监听客户端连接 接收数据和发送数据 3.客户端编程 4.一个小的登录系统 1.简单介绍下TCP/IP TCP/IP是互联网相关协议的集合,分为以下四层:应用层.传输层.网络层.数据链路层. 分成四层的好处是,假如只有一层,某个地方需要改变设计时,就必须把所有整体替换掉,而分层之后只需把变动的层替换掉即可. 2. 服务端编程 node提供了net模块来实现tcp编程.主要分为服务端编程和客户端编程两部分,先来写服务端的: 监听客户端连接 先引入ne

  • Golang环境搭建及打包和工具链详解

    目录 一.环境搭建 二.包 三.导入 四.init函数 五.一些常用go命令 一.环境搭建 从https://golang.google.cn/dl/下载安装即可 新建GO_HOME 系统环境变量,指向go的安装目录在终端输入go dev即可测试有无安装成功 二.包 所有Go程序的程序都会组织成若干组文件,每组文件被称为一个包.每个包的代码都可以作为很小的复用单元,被其他项目引用.①所有的go文件都应在第一行声明自己所属的包.每个包都在一个单独的目录里.这意味着同一个目录下的所有.go文件都必须

随机推荐