使用pkg对nodejs项目打包
pkg的介绍可以阅读官方说明。下面针对使用做一个简单的说明。
1. 安装, 假设需要将项目打包成 win-x86 下运行的软件包,需要确定使用的 pkg 和 pkg-fecth 的版本,目前最后一个支持 x86 的 pkg 为 4.5.1,pkg-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项目打包的更多相关文章
- webpack4打包nodejs项目进阶版——多页应用模板
前段时间我写了个打包nodejs项目的文章,点击前往 但是,问题很多.因为之前的项目是个历史遗留项目,重构起来可能会爆炸,当时又比较急所以就写个的适用范围很小的webpack的打包方法. 最近稍微得空 ...
- Grunt-Kmc基于KISSY项目打包
Grunt-Kmc基于KISSY项目打包 1. Grunt-Kmc 是基于nodejs开发的,所以未安装nodeJS,先需要安装nodejs.安装步骤如下: 1. 下载安装文件,下载地址 ...
- 十二、VueJs 填坑日记之项目打包发布
通过上一篇博文的学习,我们其实已经完成了我们设想的项目的开发.但是,我们做好的这套东西,是基于 nodejs 开发的.而我们最终希望,我们开发的项目,生成好一堆文件,然后随便通过任何一个 http 服 ...
- nodejs项目mysql使用sequelize支持存储emoji
nodejs项目mysql使用sequelize支持存储emoji 本篇主要记录nodejs项目阿里云mysql如何支持存储emoji表情. 因由 最近项目遇到用户在文本输入emoji进行存储的时候导 ...
- 图解使用VS的安装项目打包程序
背景 这段时间一直在做客户端程序的打包程序,遇到各种坑.因为以前没有任何这方面的经验,历经各种折腾,费尽九牛二虎之力总算是完成了. 虽然没有太多技术含量,但是因为挺繁琐的,所以还是在此记录一下. 由于 ...
- 将 java 项目打包成可运行的 jar 包(main 函数带参数),并上传到 linux 服务器上运行
一.概述 java项目有两种架构,一种是 B/S 架构的,一种是 C/S 架构的. 对于 B/S 架构来说,我们常见的 java ee 即是 B/S 架构,通常,开发人员会在本地进行开发,然后将项目打 ...
- maven 项目打包 及window下部署到tomcat
1.maven项目打包 2.将war文件拷贝到tomcat目录webapps下(不要再建目录)3.将必要的jar文件拷贝到tomcat目录libx下 war包 或jar 包 会生成到项目所在路径 的t ...
- Storm系列(三):创建Maven项目打包提交wordcount到Storm集群
在上一篇博客中,我们通过Storm.Net.Adapter创建了一个使用Csharp编写的Storm Topology - wordcount.本文将介绍如何编写Java端的程序以及如何发布到测试的S ...
- javaweb项目打包成war包
从来没有想过web项目还能打包的,但是有要求,就不得不去实现,在网上找了一下,发现挺简单的. 首先是使用MyEclipse将web项目打包,如下图所示. 右键选中项目,选择export. 然后选择J2 ...
- Eclipse将引用了第三方jar包的Java项目打包成jar文件的两种方法
方案一:用Eclipse自带的Export功能 步骤1:准备主清单文件 “MANIFEST.MF”, 由于是打包引用了第三方jar包的Java项目,故需要自定义配置文件MANIFEST.MF,在该项目 ...
随机推荐
- 在matlab中使用遗传算法执行最优化
遗传算法是一种通用的最优化方法,具体原理可以看:遗传算法详解与实验.下面记录在Matlab中如何使用遗传算法来做优化. 用法 调用方式如下: 1 x = ga(fun,nvars) 2 x = ga( ...
- Java线程命名问题解决
前言 网上冲浪时刷到线程池的文章,想想看自己好像还没在实际场景中设置过线程名称,小小研究一下. 研究过程 默认命名 创建的线程都会有自己的名字,如果不设置,程序会给线程默认的名字,如Thread-0 ...
- orangepi zero3开启指定频段WiFi热点的指令
步骤 通过 -c 命令即可指定wifi频段,避免和其他wifi的频段撞在一起. 例如下面这条命令创建了一个频段为40,WiFi名为zero3,网段为192.168.12.0/24的WiFi热点 sud ...
- 在 .NET 环境下访问 SOAP 服务
在 .NET 环境下访问 SOAP 服务 SOAP 服务有着悠久的历史,目前仍然存在大量的 SOAP 服务,它是基于 HTTP 协议和 XML 技术的简单对象访问协议. 在 .NET Framewor ...
- 关于在Rocky linux下安装dotnet sdk不成功的问题
Rocky Linux 9,运行 dnf install -y dotnet-sdk-6.0 一切正常,运行起来非常顺利,安装完毕.但是非常诡异,运行 dotnet --list-sdks dotne ...
- [Blazor] 一文理清 Blazor Identity 鉴权验证
一文理清 Blazor Identity 鉴权验证 摘要 在现代Web应用程序中,身份认证与授权是确保应用安全性和用户数据保护的关键环节.Blazor作为基于C#和.NET的前端框架,提供了丰富的身份 ...
- Java 基于接口的动态代理
UserDao接口 package com.pry.cn; public interface UserDao { public int add(int a,int b); public String ...
- arm mattermost
It's not so hard, here is my working steps for arm64 device. cd ~/build/mattermost wget https://raw. ...
- Spark面试题汇总及答案(推荐收藏)
一.面试题 Spark 通常来说,Spark与MapReduce相比,Spark运行效率更高.请说明效率更高来源于Spark内置的哪些机制? hadoop和spark使用场景? spark如何保证宕机 ...
- Qt 6 中的 Qt Extras 模块
一.前言 Qt 6 是有意识地努力使框架更加高效和易于使用的结果. 我们尝试在每个版本中保持所有公共 API 的二进制和源代码兼容性. 但为了使 Qt 成为更好的框架,一些更改是不可避免的. 其中一项 ...