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 文件内容后,需要重启可执行文件才能生效。

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

相关文章

  • Express服务器端代码热加载的实现代码

    Express服务器端代码热加载的实现代码

    这篇文章主要介绍了Express服务器端代码热加载的实现,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • 详解nodejs的express如何自动生成项目框架

    详解nodejs的express如何自动生成项目框架

    本篇文章主要介绍了nodejs的express如何自动生成项目框架,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • 详解如何给Node.js版本降级

    详解如何给Node.js版本降级

    Node.js是一个基于chrome v8引擎的JavaScript运行时环境,用于构建快速、可扩展的网络应用程序,在某些情况下,降级Node.js版本可能额是必要的,本篇文章将向您介绍如今降级Node.js版本并提供相应的源代码示例,需要的朋友可以参考下
    2023-11-11
  • Node.js模块化的使用详细介绍

    Node.js模块化的使用详细介绍

    nodejs中的模块化是指将每个js文件会被认为单独一个的模块。模块之间是互相不可见的。如果一个模块需要使用另一个模块,那么需要通过指定语法来引入要使用的模块,而且只能使用引入模块所暴露的内容
    2022-08-08
  • nodejs aes 加解密实例

    nodejs aes 加解密实例

    今天小编就为大家分享一篇nodejs aes 加解密实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • nestjs中异常过滤器Exceptionfilter的具体使用

    nestjs中异常过滤器Exceptionfilter的具体使用

    这篇文章主要介绍了nestjs中异常过滤器Exceptionfilter的具体使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Windows下Node.js安装及环境配置方法

    Windows下Node.js安装及环境配置方法

    这篇文章主要为大家介绍一下Node.js安装及环境配置方法,这也是脚本之家小编发现的比较详细的教程了,从安装到配置都很详细,想学习Node.js的朋友可以参考一下
    2017-09-09
  • 解决Mac下安装nmp的淘宝镜像失败问题

    解决Mac下安装nmp的淘宝镜像失败问题

    今天小编就为大家分享一篇解决Mac下安装nmp的淘宝镜像失败问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • node实现简单的反向代理服务器

    node实现简单的反向代理服务器

    本篇文章主要介绍了node实现简单的反向代理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Node之简单的前后端交互(实例讲解)

    Node之简单的前后端交互(实例讲解)

    下面小编就为大家带来一篇Node之简单的前后端交互(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11

最新评论