问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

nodejs pkg是什么文件

发布网友 发布时间:2022-04-22 20:36

我来回答

2个回答

懂视网 时间:2022-04-23 00:57

下面我就为大家分享一篇基于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,给老板演示很方便有木有!

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

使用vue + less如何实现简单换肤功能

使用angular、react和vue如何实现相同的面试题组件

利用jQuery实现滚动到底部时自动加载

在Angular2.0中如何实现modal对话框

在JS中如何实现运动缓冲效果(详细教程)

热心网友 时间:2022-04-22 22:05

[1] Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台, 用来方便地搭建快速的 易于扩展的网络应用· Node.js 借助事件驱动, 非阻塞I/O 模型变得轻量和高效, 非常适合 运行在分布式设备 的 数据密集型 的实时应用。
V8引擎执行Javascript的速度非常快,性能非常好。Node对一些特殊用例进行了优化,提供了替代的API,使得V8在非浏览器环境下运行得更好。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
光线为什么不存在 炒菜时要等到油冒烟吗 高考数学选修没涂有分吗? 高考选修不涂有分数吗 《宫》中插曲是什么乐器演奏的? 电视剧《宫》的主题曲和片尾曲分别是什么? 爱我的人和我爱的人原唱是裘海正还是游鸿明 刑法对追诉时效的规定 刑事案件追诉期限的法律规定是什么? 爱奇艺海外版怎么下载 服装店的营销策略? 会声会影怎么编辑才不卡 如何用会声会影编辑sdv拍摄的视频 会声会影剪辑时为什么这么卡 用会声会影编辑视频的问题??? 会声会影怎样剪辑 会声会影只能添加图片而不能编辑? 为什么会声会影编辑视频没有声音? 微信名称怎么加好友? 如何通过微信昵称找到? 窗户不隔音怎么办 如何通过微信昵称找到? 社保生孩子需要交满多少月才能有的报销啊 不知道知道名称怎么加好友 在深圳社保要缴费多久,生小孩才可以报销 社保买多久生小孩才有得报销 只有自己才是自己的镜子。拿别人做自己的镜子,天才也许会照镜子是什么意思? 只有自己才是自己的镜子,拿别人做自己的镜子,天才也许会照成傻瓜是什么 只有自己才是自己的镜子。拿别人做自己的镜子,天才也许会照成傻瓜。什么意思 如何将node程序打包成一个dockerfile 老凤祥黄金与中国黄金有什么区别 中国黄金跟中国老牌黄金有什么区别 孩子吃什么可以长高 孩子吃什么食物可以长高 photoshop裁剪工具 梦到自己小产 兰花叶子有点扭曲,而且开始泛黄,有的叶尖也开始枯了.这是怎么回事? 兰花叶子发黄怎么办呢? 兰花的叶子发黄怎么办 提取诺基亚x7的内置软件 已经跟一条咸鱼没什么区别是什么意思 最终深渊_by一条咸鱼而已_txt全文阅读,百度网盘免费下载 这句话出自哪里?做人要是没有梦想,那和一条咸鱼有什么分别? 河北桃快要下来了 大家有知道河北什么时候桃成熟 在什么地方 详细点的 谢谢 qq突然打不开动态显示qzonne启动失败 qq空间为什么启动不了qq动态 QQ空间为什么会出现动态拉取失败? 为什么QQ空间动态老是显示操作失败,该怎么弄? 为什么QQ空间拉取动态失败? 为什么选择 Yeoman 及 Yeoman 的安装