node app 打包工具pkg的具体使用

 更新时间:2019年01月17日 11:27:02   作者:颐和园  
这篇文章主要介绍了node app 打包工具pkg的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

node 打包可执行文件的工具有很多。node-packer 是国人写的,但一年前就停止更新了。而 nexe 一到fetching prebuilt binary 就报错,放弃了,最终选择了 pkg。

这个项目很神奇,直接将node.js项目打包成windows可以直接执行的exe文件(也支持FreeBSD、linux、macos、arm系统),甚至不需要安装Node.js,且无须修改你项目中的任何代码!

命令行打包

pkg -t node10-macos-x64 index.js

package.json 配置

如果不想每次都输入这么多参数,则需要在 packge.json 文件增加一个 bin 和 pkg 选项:

```
"pkg": {
"scripts": [], // 不需要 striped 的 js 文件
"targets": [ // 打包选项,格式为:node版本-平台类型 mac 或 windows-架构
 "node10-win-x64",
 "node10-macos-x64"
],
"output": "proxy" // 可执行文件名,比如 proxy-win.exe 或 proxy-macos
},
"bin": "index.js" // app 的启动文件
```

然后,你只需要用 pkg . 就可以了。

注:pkg 最多只支持到 node 10 版本。node 11 还暂不支持。

Assets

有一些文件,它不是 js 文件,也没有在代码中 require 过,比如 html 和 css 文件。pkg 就无能为力了。如果想将这些文件也打包到可执行文件中,将它们放到 pakcage.json 的 pkg 的 assets 数组中就可以了,比如:

"assets": [ // 需要被打包的资源文件(即没有在代码中被 require 过的文件)
 "index.html"
],

动态加载的文件

有一些文件,你不想打包进去,比如一些配置文件、json 文件,可以在 require 时指定绝对路径,比如 data 目录下的 users.json 文件:

const users = require(path.join(process.execPath,'../data/users.json'))

然后在打包后,将在可执行文件的同级目录下新建 data 目录,再将 users.json 文件拷贝到 data 目录即可。

这样,以在运行时改变 app 的一些参数。

注意,修改 users.json 文件内容后,需要重启可执行文件才能生效。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Node.js使用Streams来处理文件读写操作的示例代码

    Node.js使用Streams来处理文件读写操作的示例代码

    在Node.js中,Streams 提供了一种高效的方式来处理文件的读写操作,特别是对于大文件或数据流,Streams 允许你以流的方式读写数据,这意味着数据可以分块处理,本文介绍了在Node.js中如何使用Streams来处理文件读写操作,需要的朋友可以参考下
    2024-09-09
  • Node.js实现读取Excel数据并插入MySQL

    Node.js实现读取Excel数据并插入MySQL

    这篇文章主要为大家详细介绍了Node.js如何实现读取Excel数据并插入到MySQL数据库中,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-11-11
  • Node.js的特点和应用场景介绍

    Node.js的特点和应用场景介绍

    这篇文章主要介绍了Node.js的特点和应用场景介绍,本文讲解了Node.js的异步I/O、 事件循环与回调函数、单线程、 跨平台等特性,然后总结了它的使用场景,需要的朋友可以参考下
    2014-11-11
  • node.js对应npm安装和使用方法教程

    node.js对应npm安装和使用方法教程

    这篇文章主要给大家介绍了关于node.js对应npm安装和使用方法的相关资料,文中通过代码介绍的非常详细,对大家学习或者使用node.js具有一定的参考借鉴价值,需要的朋友可以参考下
    2024-01-01
  • NodeJS中利用Promise来封装异步函数

    NodeJS中利用Promise来封装异步函数

    这篇文章主要介绍了NodeJS中利用Promise来封装异步函数,使用统一的链式API来摆脱多重回调的噩梦,非常的实用的小技能,希望小伙伴们能够喜欢
    2015-02-02
  • node.js中的fs.fchmod方法使用说明

    node.js中的fs.fchmod方法使用说明

    这篇文章主要介绍了node.js中的fs.fchmod方法使用说明,本文介绍了fs.fchmod的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • node.js+Ajax实现获取HTTP服务器返回数据

    node.js+Ajax实现获取HTTP服务器返回数据

    这篇文章主要介绍了node.js+Ajax实现获取HTTP服务器返回数据,讲解的十分详细,也给出了很多的实例,是篇非常不错的文章,这里推荐给大家。
    2014-11-11
  • nodejs微信开发之自动回复的实现

    nodejs微信开发之自动回复的实现

    这篇文章主要介绍了nodejs微信开发之自动回复的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • Node.js断点续传的实现

    Node.js断点续传的实现

    最近做了个项目,应项目需求,需要传图片、Excel等,几M的大小可以很快就上传到服务器,但是大的就需要断点上传,本文就介绍一下,感兴趣的可以了解一下
    2021-05-05
  • nodejs各种姿势断点调试的方法

    nodejs各种姿势断点调试的方法

    这篇文章主要介绍了nodejs各种姿势断点调试的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-06-06

最新评论