node打包工具Pkg(详细教程)
https://www.gxlcms.com/JavaScript-251471.html
Root='/';var Sid='';var Cid='';
.nav-column ul li { position: relative; width: 116px; } .nav-column ul li:hover{ background: rgba(0,0,0,.15); } .nav-column a{ font-size: 15px; padding: 0; } .j_subBox { width: 116px; background: #17A1FF; position: absolute; left: 0; display: none; z-index: 1000; } .nav-column ul li:hover .j_subBox{ display: block; } .nav-column .j_subBox a { font-size: 14px; line-height: 40px; height: 40px; background: #17A1FF; padding: 0; } .nav-column .j_subBox a:hover{ background: rgba(0,0,0,.15); }
-
首页
-
编程
PHP基础 PHP教程 php框架 JavaScript asp.net AJAX 正则表达式 ASP html代码 css 前端框架 Python 服务器
-
数据库
mysql mssql redis 数据库问题
-
系统教程
window10教程 window8教程 window11教程 window7教程 windowxp教程 linux教程 U盘教程
-
操作系统
Windowsxp windows7 windows8 windows10 其他操作系统
-
程序下载
企业程序 小说/有声 网站模板 第三方软件 新闻资讯 第三方源码 小程序 商城源码
-
框架书籍
前端开发 服务器端开发 数据库 开发软件 其他手册
-
jquery插件库
输入 banner图 图片脚本 导航/分类 播放器 css3 jQuery脚本 jqueryhtml5 进度条 贴图/客服
-
在线工具
编码转换工具 在线IDE编码工具
-
开发手册
linux命令大全 Bootstrap HTML参考手册 css手册/教程 ThinkPHP5.0 ThinkPHP3.2
try { var urlhash = window.location.hash; if (!urlhash.match("fromapp")) { if ((navigator.userAgent.match(/(iPhone|iPod|Android|ios|iPad)/i))) { window.location="https://m.gxlcms.com/JavaScript-251471.html"; //这里的网址请改为你手机站的网址 } } } catch(err) { }
当前位置:Gxlcms > JavaScript > node打包工具Pkg(详细教程)
node打包工具Pkg(详细教程)
时间:2021-07-01 10:21:17 帮助过:346人阅读
下面我就为大家分享一篇基于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中如何实现运动缓冲效果(详细教程)
以上就是node打包工具Pkg(详细教程)的详细内容,更多请关注Gxl网其它相关文章!
-
[
< 上一篇
mint-ui+vue案例解析
](https://www.gxlcms.com/JavaScript-251470.html)
-
[
下一篇 >
js+css+html做出打字动画功能
](https://www.gxlcms.com/JavaScript-251472.html)
人气教程排行
- 213次 1 vue2 设置router-view默认路径的实例
- 213次 2 Vue-路由导航菜单栏的高亮设置方法
- 213次 3 基于Axios 常用的请求方法别名(详解)
- 213次 4 JavaScript+canvas实现七色板效果实例
- 212次 5 实现vuex的初始化方法
- 212次 6 jQuery:当鼠标快速移动时无法触发mouseleave事件的问题解决
- 212次 7 Array.slice()与Array.splice()的返回值类型_基础知识
- 212次 8 微信小程序使用swiper组件实现层叠轮播图
- 212次 9 element-ui 限制日期选择的方法(datepicker)
- 212次 10 vue-baidu-map 进入页面自动定位的解决方案(推荐)
- 212次 11 JS实现元素上下左右移动效果
- 212次 12 node.js中的emitter.on方法使用说明
- 211次 13 在js中如何实现图片左右滑动
- 211次 14 layui button 按钮弹出提示窗口,确定才进行的方法
- 211次 15 深入理解Vue生命周期、手动挂载及挂载子组件
- 211次 16 JS 使用for循环遍历子节点查找元素
- 210次 17 bootstrap如何设置表单必填
- 210次 18 bootstrap4兼容哪些浏览器
- 210次 19 jQuery实现追加数组并去重功能
- 210次 20 jQuery实现的在线答题功能_jquery
本站所有资源全部来源于网络,若本站发布的内容侵害到您的隐私或者利益,请联系我们删除!
登录
记住我的登录 忘记密码?
登录
我已阅读用户协议及版权声明
注册
var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?6dc1c3c5281cf70f49bc0bc860ec24f2"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); layui.use('code', function() { layui.code({ elem: 'pre', //默认值为.layui-code about: false, skin: 'notepad', title: 'php怎么实现数据库验证跳转代码块', encode: true //是否转义html标签。默认不开启 }); });
本文转自 https://www.gxlcms.com/JavaScript-251471.html,如有侵权,请联系删除。