pkg的介绍可以阅读官方说明。下面针对使用做一个简单的说明。

  1.  安装, 假设需要将项目打包成 win-x86 下运行的软件包,需要确定使用的 pkg 和 pkg-fecth 的版本,目前最后一个支持 x86 的 pkg 为 4.5.1pkg-fetch 则为 v2.6

npm install -g pkg@4.5.1

  2. 假设工程项目结构如下

myprj
|_bin
| |_mb1(自己定义的模块)
|
|_dist
|_node_modules
|_public
| |_icons
| |_image
| |_javascripts
| |_stylesheets
|_routers
|_views
|_app.js
|_appConfig.json
|_package-lock.json
|_package.json

  那么 package 中 pkg 相关的配置如下。

{
"name": "myprj",
...
"main": "app.js", //
"scripts": {
...
"pkg": "pkg . -t node12.16.1-win-x86 --out-path dist/" //注意pkg和-t之间的 .
},
...
"pkg":{
"assets":["public/**/*","views/**/*"] //列出需要打包的项目文件
},
"bin":"app.js" //指定入口, 和pkg处的 。相对应
}

  该处的 点 表示,使用package.json中的"bin"属性指定的文件作为入口。Path to package.json  .  Pkg will follow bin property of the specified package.json and use it as entry file.

  3.  此时在项目根目录下运行如下命令即可完成打包。

npm run pkg

  可能出现的问题:

  1.  下载对应版本的fetched失败,那么需要手动下载所需版本,并将名称命名为 fetched-v12.16.1-win-x86 注意匹配。将给文件放置到环境变量PKG_CACHE_PATH所指定的文件夹,默认是用户的主文件夹 ~/.pkg-cache, 即 C:\Users\当前用户名\.pkg-cache\v2.6

  2. 如果需要打包后的软件需要在运行时读取外部配置文件,则可如下处理

var cfg = require(path.resolve(process.cwd(),'./appConfig.json'));

使用pkg对nodejs项目打包的更多相关文章

  1. webpack4打包nodejs项目进阶版——多页应用模板

    前段时间我写了个打包nodejs项目的文章,点击前往 但是,问题很多.因为之前的项目是个历史遗留项目,重构起来可能会爆炸,当时又比较急所以就写个的适用范围很小的webpack的打包方法. 最近稍微得空 ...

  2. Grunt-Kmc基于KISSY项目打包

    Grunt-Kmc基于KISSY项目打包 1. Grunt-Kmc 是基于nodejs开发的,所以未安装nodeJS,先需要安装nodejs.安装步骤如下:        1. 下载安装文件,下载地址 ...

  3. 十二、VueJs 填坑日记之项目打包发布

    通过上一篇博文的学习,我们其实已经完成了我们设想的项目的开发.但是,我们做好的这套东西,是基于 nodejs 开发的.而我们最终希望,我们开发的项目,生成好一堆文件,然后随便通过任何一个 http 服 ...

  4. nodejs项目mysql使用sequelize支持存储emoji

    nodejs项目mysql使用sequelize支持存储emoji 本篇主要记录nodejs项目阿里云mysql如何支持存储emoji表情. 因由 最近项目遇到用户在文本输入emoji进行存储的时候导 ...

  5. 图解使用VS的安装项目打包程序

    背景 这段时间一直在做客户端程序的打包程序,遇到各种坑.因为以前没有任何这方面的经验,历经各种折腾,费尽九牛二虎之力总算是完成了. 虽然没有太多技术含量,但是因为挺繁琐的,所以还是在此记录一下. 由于 ...

  6. 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行

    一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...

  7. maven 项目打包 及window下部署到tomcat

    1.maven项目打包 2.将war文件拷贝到tomcat目录webapps下(不要再建目录)3.将必要的jar文件拷贝到tomcat目录libx下 war包 或jar 包 会生成到项目所在路径 的t ...

  8. Storm系列(三):创建Maven项目打包提交wordcount到Storm集群

    在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...

  9. javaweb项目打包成war包

    从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...

  10. Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法

    方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...

随机推荐

  1. 详解 Eclipse 中的快速 Java 编码(代码模板)

    http://hi.baidu.com/twlk28/blog/item/f3ca4d905f1c6696a877a462.html 简介: Eclipse 提供了通过定义和使用代码模板来提高工作效率 ...

  2. Memcached笔记——(一)安装&常规错误&监控

    08年的时候接触过Memcached,当时还对它的客户端产品嗤之以鼻,毕竟手工代码没有各种ORM原生XML配置方便.尽管如此,Memcached现在已经成了服务器架构里不可或缺的一部分! 相关链接:  ...

  3. SQL 语法解释器jsqlparser

    是用java 开发的解析器, 可以生成java类层次结构. 主页地址: http://jsqlparser.sourceforge.net 可以完美解析 表的 增删查改等操作. 展开它的源码你会发现. ...

  4. 【docker-compose】Redis安装教程

    仅供学习参考 ,请勿轻易在生产环境使用 0. 文件目录 下面的文件按照这个目录层级放置,首先创建 /docker/redis 文件夹,/docker/redis 对应下边图中 REDIS. 1. 创建 ...

  5. CryptoHack做题记录

    一.GENERAL 1.ENCODING ASCII ascii = [99, 114, 121, 112, 116, 111, 123, 65, 83, 67, 73, 73, 95, 112, 1 ...

  6. MongoDB|TOMCAT定时切割日志文件的脚本

    MongoDB用过一段时间后,日志较大,需要定时进行日志切割. 一.切割bash: splitlogmongo.sh #!/bin/bash log_dir="/home/mongodb/l ...

  7. manim边学边做--突出显示

    本篇介绍Manim中用于突出显示某些内容的动画类,主要包括: ApplyWave:让图形或文字产生连续波浪式变形的动画类,用于展示波动效果,参数可调节 Circumscribe:用于在几何场景中展示图 ...

  8. iOS画中画

    iOS 14 画中画 打开项目后台模式 创建视频播放源 let url = Bundle.main.url(forResource: "annie", withExtension: ...

  9. DotNet Core Threadpool

    DotNet Core Threadpool Jai Rathore https://medium.com/@jaiadityarathore/dotnet-core-threadpool-bef2f ...

  10. Zookeeper Java API操作流程

    首先需要配置一台Zookeeper服务器 pom文件     <dependencies> <!-- https://mvnrepository.com/artifact/org.a ...