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. js中栈的运用

    JavaScript 中栈的运用 在 JavaScript 中,栈(Stack)是一种非常有用的数据结构,它遵循后进先出(Last In First Out,LIFO)的原则.在本文中,我们将深入探讨 ...

  2. swoole的安装

    因为换了一台工作电脑 需要重新安装各种环境,这里简单记录一下swoole的安装步骤. 首先去下载它的git仓库: $ git clone https://gitee.com/swoole/swoole ...

  3. Spring MVC 3.2 技术预览(三):动手写一个异步Controller方法

    原文地址:http://blog.springsource.org/2012/05/10/spring-mvc-3-2-preview-making-a-controller-method-async ...

  4. echarts中label上下两行展示

    如上图展示 series: [ //系列列表 { name: '设备状态', //系列名称 type: 'pie', //类型 pie表示饼图 radius: ['50%', '70%'], //饼图 ...

  5. nodejs版本管理工具之n

    转载: https://juejin.cn/post/7065534944101007391 Node.js 对于现在的前端开发人员来说是不可或缺的需要掌握的技能,但我们在使用时避免不了会需要切换不同 ...

  6. rabbitmq-c与amqp扩展安装

    最近需要使用RabbitMQ进行消息队列处理 1.安装rabbitmq-c 在安装amqp之前需要先安装rabbitmq-c扩展 rabbitmq-c下载网址:https://github.com/a ...

  7. python之数据库管理工具sandman2

    文档:Welcome to sandman2's documentation! - sandman2 0.0.1 documentation [安装] pip install sandman2 安装成 ...

  8. Sublime之快捷操作

    列举常用的Sublime操作,涉及操作 1.每行默认需要统一添加逗号 1)全选 ctrl + a 2) 组合键 ctrl + shift + l 即可进行操作 (这里是L哦) 之后也可以使用HOME键 ...

  9. Codeforces Round 713 (Div

    Codeforces Round 713 (Div. 3) A-B Palindrome 给定字符串只含有\('?'\ '0' \ '1'\),给定字符串中1的个数\(a\)和0的个数\(b\),你需 ...

  10. 使用七牛云上传文件报错incorrect region, please use up-z1.qiniup.com-迷恋自留地

    最近用Git提交代码时,一直报如标题所示的错误.百度了很多都无法解决,包括改更改配置,SSh等.最后在一个论坛上,说可能之前输入的账号或密码有误.尝试后,完美解决. 解决方法: 找到如下图的位置: 可 ...