文章目录

  • 一、安装pkg
  • 二、打包命令
  • 三、package.json文件配置
  • 三、报错解决
    • 1.未下载打包需要的二进制缓存文件
    • 2.下载完的文件存放的位置
    • 3.下载文件的重命名
  • 四、下载
  • 五、可能遇到问题补充
  • 六、总结

这次项目事前后端分离的一个项目,我们需要用node去包装后端给我们的接口,最后我们还需要把前端的代码和后端的代码一起部署到服务器上去访问,而后端需要用到linux二进制文件,这样就需要我们使用pkg对项目进行打包,这次就来分享一下打包的一些配置,准备工作以及可能遇到的问题解决方案。

一、安装pkg

首先,我们使用的是pkg打包工具,所以我们要下载安装pkg,为了方便,这里直接采用全局安装

npm i pkg -g

二、打包命令

pkg .

在项目的根目录中打开cmd输入上述命令,它会自动找到该目录下的package.json文件根据里边的内容进行打包

三、package.json文件配置

打包是根据package.json文件来打包的,这样的话,我们需要手动配置一下package.json文件,需要加上这些东西

"bin": {"credit-recognition-system": "server.js"//指定入口文件,就是那个启动服务器的js文件,我这里叫server.js},"pkg": {"scripts": ["./static/js/*.js"//因为pkg不会自动打包js文件,这里配置的是存放js的目录],"targets": [//指定最终打包的类型,pkg是可以打包为win包和linux包以及moc包的,具体的需要看服务器是什么类型的"node14-win-x64",//这里指定的是win包"node14-linux-x64"//这里指定的是linux包],"assets": ["./static",//指定存放静态资源的文件夹"./views"//指定存放html的文件夹]},

上边的文件都指定完了,但是大家可能会好奇为什么没有指定存放路由文件的文件夹和node_moudels文件呢?
那是因为我们是以server.js(启动服务器的js)作为入口文件,里边有引入路由文件的操作,这样就在这个入口文件里指定了。而我们依赖的第三方包,在package.json中就有指定。

三、报错解决

在配置这些文件之后我们就可以进行打包之后的最后一个操作了就是去官网去下载打包二进制文件所需要的二进制缓存文件官网,这个是github上的网站,比较慢,可以挂一个加速器。

1.未下载打包需要的二进制缓存文件


可以看到我上边我画红的地方,前边的tag指定的v3.4是我们要把官网下载的二进制缓存文件存放的文件夹,后边是我们需要下载的二进制缓存文件的版本

上边红箭头指定的是我们这次打包需要下载的

2.下载完的文件存放的位置

我们可以在我们电脑的C盘找到Users==>用户名==>.pkg-cache下看看有没有v3.4文件夹,没有的话新建一个,把刚刚下载的文件都存放到这个文件夹里边

3.下载文件的重命名

我们需要把刚刚下载的文件进行重命名,只需把刚刚下载的文件名前边的node修改为fetched就可以了。

四、下载

这时我们再运行刚刚那个命令

就可以看到这个,这样的话就代表我们成功了,只需等一会就可以再我们能够目录下看到多出两个文件

这样我们就打包好了,我们可以点击exe程序进行运行,会看到弹出一个命令看,里边和你平常运行node项目一样。

五、可能遇到问题补充

我们打包之后的文件正常情况下是可以再任意的电脑上任意的文件夹中运行的,但是可能会出现一种问题就是我把这个exe文件移出打包的能那个文件夹,点击运行,路由文件的接口正常访问,但是我们的html文件不能打开了,这是因为文件路径的问题,我们只需再入口文件中加上

app.set("views", "views");

重新打包就可以了

六、总结

对于打包这个问题它并不是难点,但是对于我们这种初学者来说,根本就不知道应该怎么做,百度出来的结果也是一头雾水,五花八门,最终打包出来之后也并不知道自己打包的对不对。遇到这种情况,一定不要慌张,这种东西不是难,而是我们不知道而已。实在不行就去问大佬,我觉得改bug就和一句话很像,就是久病成良医,遇见的bug多了自然就知道从哪里下手了。
      下周继续加油咯!!!

pkg打包node项目相关推荐

  1. 使用 pkg 打包 node服务端 项目

    前言 最近自己写了一个nodejs+mysql+express 的项目,想着如果项目部署的话还要再安装 node 环境什么的,肯定太麻烦,于是就想有没有像webpack 那样打包项目的插件,于是了解到 ...

  2. 使用pkg将node项目打包成exe后,EXE文件打开闪退

    发现网上没有相关内容,做一下记录. 项目使用了canvas,闪退的问题就是因为这个,但不清楚为什么会出现问题. 具体情况: 打开exe会闪退,发现没有启动服务,在cmd中打开该exe,发现有一条报错, ...

  3. pkg打包node服务为双击可执行二进制文件Windows x64系统

    1.安装node.js 我这里安装的是14.16.0(建议版本14以上) 2.安装pkg包 3.编写一段后台程序 ·目录结构如下 ·package.json中内容 {"name": ...

  4. pkg之打包node服务

    如何将用Node搭建的服务,在没有外网的情况下简单部署?通过查找自己和实践,找到了适合的技术--pkg,能将服务打包成一个exe文件,方便部署,既能保证代码的安全性,又能让使用者一键操作. 一.通过查 ...

  5. node pkg 打包一个为一个可执行程序(linux、windows、mac)

    概要:如果将node项目打包为一个可执行的文件,那么对于部署.安装来说,以及源码的保护性都有很多的好处 1.全局安装pkg库,也可以不局部安装,全局安装为了方便(npm install pkg -g) ...

  6. node 项目打包工具ncc

    ncc是一个简单的打包工具,可以把一个node项目,打包成单个的js文件. 安装 npm i -g @zeit/ncc 使用 1.cd到工程目录下,就是你的项目目录,比如说app.js或者说 inde ...

  7. docker build命令详解_Docker 搭建你的第一个 Node 项目到服务器

    本文你能学到什么 Docker 是什么 Docker 概念 关于 Docker 的概念是确实不太好总结,下面我通过四点向你说明 Docker 到底是个什么东西. Docker 是世界领先的软件容器平台 ...

  8. npm打包前端项目太慢问题分析以及暂时解决方案

    npm build 打包前端项目实际上是执行 node build/build.js,但是随着项目的依赖包越来越多,项目打包时间不断延长,为了改善这个问题,需要从node入手 暂时解决方案:扩大nod ...

  9. 宝塔部署node项目_SFF一站式node服务管理平台实践

    导语 本文阐述了基于Serverless搭建一站式node服务管理平台过程中,在开发框架.日志.监控.部署等方面遇到的问题及技术方案. 背景 Serverless是一种无服务器架构,它的弹性伸缩,按需 ...

  10. 云原生尝试——Docker部署node项目

    云原生--Docker实战 1.引言 2.学习条件 3.基本概念介绍 4.Docker基本使用 5.Docker进阶使用 6.参考文献 1.引言     最近一打开CSDN基本上都是在介绍云原生,本着 ...

最新文章

  1. An In-Depth Look at the HBase Architecture--转载
  2. pcb设计单点接地示意图_答案:关于PCB 的EMC设计知识考卷
  3. python函数示例_使用Python中的示例的input()函数
  4. Python+ZeroMQ使用REQ/REP模式快速实现消息收发
  5. android 用户中心布局,android用户中心头像选择功能的方法实现-Go语言中文社区
  6. echarts改变图例位置
  7. Java常量设计与常量池
  8. 【转载】SpringMVC访问静态资源
  9. shell手册--笨鸟杰作
  10. 多媒体会议系统中的延迟
  11. 创建一个Scrapy爬虫项目并运行
  12. 视频教程-Dreamweaver初级从入门到精通,掌握网页制作-Dreamweaver
  13. 京东在线客服话术汇总!
  14. 陈旿 计算机网络,西北工业大学陈旿教授应邀来校作网络信息安全讲座
  15. 代码在线运行工具(PHP、Python、Java等)
  16. 论坛——迪文屏常用操作
  17. 算法:十六进制最大数
  18. 实践材料1(感谢刘望的翻译)
  19. php电商开源框架,Sylius 开源PHP电商解决方案
  20. Linux高级进程编程———在任意两个进程间传递文件描述符:使用 sendmsg 和 recvmsg 实现

热门文章

  1. R语言中常用的抽样函数
  2. 什么是电容式传感器?其工作原理是怎样的?
  3. 不是技术牛人,如何拿到国内IT巨头的Offer
  4. Github上Python超越Java,应届人工智能程序员年薪30w+
  5. 4种方法解决鼠标反应慢(迟钝)
  6. matlab 坐标系转换矩阵,坐标系转换矩阵生成
  7. Python中文字符串,变成英文字符串
  8. Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解
  9. Labview的CAN通讯
  10. 谷歌浏览器设置默认Flash