Pkg 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
Pkg 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
Pkg 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 MIT
操作系统 跨平台
软件类型 开源软件
开源组织
地区 不详
投 递 者 依剑_听雨
适用人群 未知
收录时间 2019-05-20

软件简介

此命令行界面使您可以将Node.js项目打包为可执行文件,甚至可以在未安装Node.js的设备上运行。

用例

  • 在没有来源的情况下制作商业版的应用程序
  • 在没有来源的情况下制作应用的演示/评估/试用版
  • 立即为其他平台制作可执行文件(交叉编译)
  • 制作某种自解压存档或安装程序
  • 无需安装Node.js和npm来运行打包的应用程序
  • 无需下载数百个文件npm install来部署您的应用程序。将其部署为单个文件
  • 将您的资产放在可执行文件中,使其更具可移植性
  • 针对新的Node.js版本测试您的应用程序而不安装它

用法

npm install -g pkg

安装后,运行pkg --help不带参数以查看选项列表。

项目的入口点是强制CLI参数。它可能是:

  • 输入文件的路径。假设它是/path/app.js,然后打包应用程序将以相同的方式工作node /path/app.js
  • 路径package.jsonPkg将遵循bin指定的属性package.json并将其用作条目文件。
  • 目录的路径。Pkgpackage.json在指定的目录中查找。往上看。

目标

pkg可以一次为多个目标计算机生成可执行文件。您可以通过--targets 选项指定以逗号分隔的目标列表。规范目标由3个元素组成,例如用短划线分隔,node6-macos-x64或者node4-linux-armv6

  • nodeRange节点$ {n}或最新
  • 平台 freebsd,linux,alpine,macos,win
  • arch x64,x86,armv6,armv7

您可以省略任何元素(并仅指定node6)。省略的元素将从当前平台或系统范围的Node.js安装(其版本和拱门)中获取。还有一个别名host,这意味着所有3个元素都取自当前的platform / Node.js。默认情况下,目标是 linux,macos,win针对当前的Node.js版本和arch。

配置

在打包过程中,pkg解析您的源,检测调用require,遍历项目的依赖项并将它们包含在可执行文件中。在大多数情况下,您无需手动指定任何内容。但是,您的代码可能有require(variable)调用(所谓的非文字参数require)或使用非JavaScript文件(例如视图,CSS,图像等)。

  require('./build/' + cmd + '.js')
  path.join(__dirname, 'views/' + viewName)

此类案件不予处理pkg。因此,您必须在文件的pkg属性中手动指定文件 - 脚本和资产package.json

 "pkg": {
    "scripts": "build/**/*.js",
    "assets": "views/**/*"
  }

您还可以指定globs数组:

 "assets": [ "assets/**/*", "images/**/*" ]

请务必致电pkg package.jsonpkg .使用scriptsassets输入。

脚本

scripts水珠 或水珠的列表。指定为的文件scripts将使用编译v8::ScriptCompiler并放入可执行文件而不使用源。它们必须符合您所定位的Node.js版本的JS标准(参见目标),即已经过编译。

资产

assets水珠 或水珠的列表。指定的文件assets将作为原始内容打包为可执行文件而不进行修改。Javascript文件也可以指定assets。他们的消息来源不会被剥夺。它提高了这些文件的执行性能并简化了调试。

另请参阅 检测源代码和 快照文件系统中的资产

选项

可以使用运行时选项(属于Node.js或V8)调用Node.js应用程序。列出他们的类型node --help或 node --v8-options。您可以将这些运行时选项“烘焙”到打包的应用程序中。应用程序将始终在打开选项的情况下运行。只需--从选项名称中删除。

pkg app.js --options expose-gc
pkg app.js --options max_old_space_size=4096

产量

您可以指定--output是仅创建一个可执行文件还是--out-path为多个目标放置可执行文件。

调试

通过--debugpkg获得一个日志包装过程。如果您遇到某些特定文件的问题(似乎没有打包成可执行文件),查看日志可能会很有用。

建立

pkg有所谓的“基本二进制文件” - 它们实际上是相同的 node可执行文件,但应用了一些补丁。它们用作每个可执行文件pkg创建的基础。pkg 在打包应用程序之前下载预编译的基本二进制文件。如果您更喜欢从源代码编译基本二进制文件而不是下载它们,您可以将--build 选项传递给pkg。首先确保您的计算机满足编译原始Node.js:BUILDING.md的要求

打包应用的用法

对打包应用程序的命令行调用./app a b相当于node app.js a b

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
2019/05/22 09:30

pkg 4.4.0 发布,将 node.js 连同环境打包成二进制文件

- 支持 node.js 12 - 不检查工作线程中的PKG_DUMMY_ENTRYPOINT - path.resolve argv [1]用于非默认入口点。 修正了 #671 此命令行界面使您可以将Node.js项目打包为可执行文件,甚至可以在未安装Node.js的设备上运行。 用例 在没有来源的情况下制作商业版的应用程序 在没有来源的情况下制作应用的演示/评估/试用版 立即为其他平台制作可执行文件(交叉编译) 制作某种自解压存档或安装程序 无需安装Node.js和npm来运行打包的应用...

0
17
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
2018/04/10 10:07

发布到NPMJS

最近在做微服务的前后端设计,打算将客户端中的一个模块独立出来发布到npmjs上,因此,有机会了解了一下npm的发布过程。 参考了很多网上的文章,长篇累牍(但在这里还是真心感谢他们的分享),最终总结成一个命令: npm publish 当然,为了让这个命令成功执行,准备如下: 初始化项目 创建npm账号 初始化项目 命令:npm init 这是一个交互式命令,最终会生成package.json,要求你输入以下内容: name 包的名称 version 包的版本...

0
0
发表了博客
2011/12/09 11:50

pkg

安装deb包常使用到的命令dpkg, dpkg -i package.deb 安装包 dpkg -r package 删除包 dpkg -P package 删除包(包括配置文件) dpkg -L package 列出与该包关联的文件 dpkg -l package 显示该包的版本 dpkg –unpack package.deb 解开 deb 包的内容 dpkg -S keyword 搜索所属的包内容 dpkg -l 列出当前已安装的包 dpkg -c package.deb 列出 deb 包的内容 dpkg –configure package 配置包 注意:更多选项可通过 dpkg -h 查询,有...

0
0
发表了博客
2012/07/12 15:25

configure,pkg-config和PKG_CONFIG_PATH

1.什么是configure configure会根据传入的配置项目检查程序编译时所依赖的环境以及对程序编译安装进行配置,最终生成编译所需的Makefile文件供程序Make读入使用进而调用相关编译程式(通常调用编译程序都是gcc)来编译最终的二进制程序。而configure脚本在检查相应依赖环境时(例:所依赖软件的版本、相应库版本等),通常会通过pkg-config的工具来检测相应依赖环境。 2.什么是pkg-config pkg-config用来检索系统中安装库文件的信息...

0
1
2019/02/28 11:36

pkg学习--使用pkg打包应用

pkg的学习之旅 ----使用pkg打包Node.js服务小demo 将Node.js打包为可执行文件的工具有pkg、nexe、node-packer、enclose等,面对项目需要,所以在学习pkg,看到相关文章,觉得这个很不错,自己记录下,以便下次使用便捷。 pkg的打包原理简单来说,就是将js代码以及相关的资源文件打包到可执行文件中,然后劫持fs里面的一些函数,使它能够读到可执行文件中的代码和资源文件。例如,原来的require(’./a.js’)会被劫持到一个虚拟目录...

0
0
发表了博客
2019/05/31 16:16

pkg-config的用法

pkg-config的用法 pkg-config pkg-config程序是干什么用的?简单的说就是向用户向程序提供相应库的路径、版本号等信息的程序。 譬如说我们运行以下命令: pkg-config 查看gcc的CFLAGS参数 $pkg-config --libs --cflags opencv 会显示如下信息: -I/usr/include/opencv -lcxcore -lcv -lhighgui -lcvaux 各位看官,你看这不就是我们用gcc编译连接时CFLAGS的参数吗? 因此当我们需要编译连接某个库时,我们只需要把上面那行加入g...

0
0
发表了博客
2012/07/10 17:25

pkg-config的使用

一、编译和连接 一般来说,如果库的头文件不在 /usr/include 目录中,那么在编译的时候需要用 -I 参数指定其路径。由于同一个库在不同系统上可能位于不同的目录下,用户安装库的时候也可以将库安装在不同的目录下,所以即使使用同一个库,由于库的路径的 不同,造成了用 -I 参数指定的头文件的路径也可能不同,其结果就是造成了编译命令界面的不统一。如果使用 -L 参数,也会造成连接界面的不统一。编译和连接界面不统一会为库的...

0
0
发表了博客
2019/03/20 20:24

pkg-config 详解

转载自:https://blog.csdn.net/newchenxf/article/details/51750239 1 什么是pkg-config pkg-config是一个linux下的命令,用于获得某一个库/模块的所有编译相关的信息。 例子: pkg-config opencv –libs –cflags 结果: -I/usr/include/opencv /usr/lib/x86_64-linux-gnu/libopencv_calib3d.so /usr/lib/x86_64-linux-gnu/libopencv_contrib.so /usr/lib/x86_64-linux-gnu/libopencv_core.so /usr/lib/x86_64-linux-gnu/libo...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
29 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部