- Node.js教程
- Node.js - 教程
- Node.js - 简介
- Node.js - 环境设置
- Node.js - 首次申请
- Node.js - REPL 终端
- Node.js - 命令行选项
- Node.js - 包管理器 (NPM)
- Node.js - 回调概念
- Node.js - 上传文件
- Node.js - 发送电子邮件
- Node.js - 活动
- Node.js - 事件循环
- Node.js - 事件发射器
- Node.js - 调试器
- Node.js - 全局对象
- Node.js - 控制台
- Node.js - 流程
- Node.js - 扩展应用程序
- Node.js - 包装
- Node.js - Express 框架
- Node.js - RESTful API
- Node.js - 缓冲器
- Node.js - Streams
- Node.js - 文件系统
- Node.js MySQL
- Node.js - MySQL 快速入门
- Node.js - MySQL创建数据库
- Node.js - MySQL创建表
- Node.js - MySQL Insert Into
- Node.js - MySQL Select From
- Node.js - MySQL Where 子句
- Node.js - MySQL Order By
- Node.js - MySQL Delete
- Node.js - MySQL Update
- Node.js - MySQL Join
- Node.js MongoDB
- Node.js - MongoDB 快速入门
- Node.js - MongoDB 创建数据库
- Node.js - MongoDB 创建集合
- Node.js - MongoDB Insert
- Node.js - MongoDB Find
- Node.js - MongoDB 查询
- Node.js - MongoDB 排序
- Node.js - MongoDB Delete
- Node.js - MongoDB Update
- Node.js - MongoDB Limit
- Node.js - MongoDB Join
- Node.js模块
- Node.js - 模块
- Node.js - 内置模块
- Node.js - utility 模块
- Node.js - Web 模块
Node.js - 包装
大型Node.js项目通常具有许多依赖项和许多源文件以及其他资产,例如图像、网页、设置文件等。分发 Node.js 项目并将其部署到任何其他环境变得很困难,因此需要对其进行打包,以便可以轻松移植到其他机器上。NPM 仓库上有许多可用的打包工具。本章讨论了 nexe 打包工具,并概述了其他一些打包库。
Nexe(英语:Nexe)
为了演示 Nexe 实用程序的工作原理,我们将使用以下脚本构建一个 ExpressJs 应用程序 -
Index.js
var express = require('express');
var app = express();
var path = require('path');
var bodyParser = require('body-parser');
// Create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })
app.use(express.static('public'));
app.get('/', function (req, res) {
res.sendFile(path.join(__dirname,"index.html"));
})
app.get('/process_get', function (req, res) {
// Prepare output in JSON format
response = {
first_name:req.query.first_name,
last_name:req.query.last_name
};
console.log(response);
res.end(JSON.stringify(response));
})
app.post("/process_post", )
var server = app.listen(5000, function () {
console.log("Express App running at http://127.0.0.1:5000/");
})
'/' 路由从以下脚本呈现 HTML 表单 -
Index.html
<html>
<body>
<form action = "/process_POST" method = "POST">
First Name: <input type = "text" name = "first_name"> <br>
Last Name: <input type = "text" name = "last_name"> <br>
<input type = "submit" value = "Submit">
</form>
</body>
</html>
Node.js服务器显示以下形式 -
上面的 Node.js 应用程序还注册了静态中间件,因此它显示了放置在 static/images 文件夹中的图像。
我们现在想为这个Node.js应用程序构建一个自执行文件,其中包含代码、子目录以及单个文件中的资产。Nexe 是一个命令行实用程序,可将Node.js应用程序编译为单个可执行文件。
Nexe的特点
- 自包含应用程序
- 能够运行具有不同node.js运行时的多个应用程序。
- 无需 node / npm 即可分发二进制文件。
- 更快地启动和部署。
- 灵活的构建管道
- 跨平台构建
在 Windows 上安装 Nexe
按如下方式执行Nexe的全局安装 -
您还需要 Netwide Assembler (NASM) 工具。从 www.nasm.us 下载并安装相同的
nexe 实用程序要求在系统上安装 Python。确保 Python 是版本 3.11 到 3.7 之一。
假设您使用的是 64 位 Windows 操作系统的 nexe,您还需要安装 Visual Studio 2022 中的“使用 C++ 进行桌面开发”工作负载。它可以从 aka.ms 安装。
(对于其他操作系统平台,请按照 github.com/nodejs 上的说明进行操作
安装完所有先决条件后,在CMD终端中运行以下命令 -
编译可能需要一段时间,但最终,它将在应用程序文件夹中创建expressApp.exe。
│ expressApp.exe
│ index.html
│ index.js
│ package-lock.json
│ package.json
│ users.json
│
├───node_modules
│ │ .package-lock.json
│ ├───body-parser
│ │ │ HISTORY.md
│ │ │ index.js
│ │ │ LICENSE
│ │ │ package.json
│ │ │ README.md
│ │ │ SECURITY.md
│ │ │ . . .
│ │ │ . . .
│ │ │ . . .
│ ├───express
│ │ │ History.md
│ │ │ index.js
│ │ │ LICENSE
│ │ │ package.json
│ │ │ Readme.md
│ │ │ . . .
│ │ │ . . .
│ │ │ . . .
└───public
└───images
logo.png
从命令行运行它,Node.js服务器将启动。
Express App running at http://127.0.0.1:5000/
PKG工具
pkg 工具是一个命令行界面,使开发人员能够从Node.JS项目创建可执行文件;允许您在没有安装 Node.JS 的环境中运行该应用程序。
要安装 pkg,请使用命令 −
然后使用 pkg 构建可执行文件
运行上述命令将生成三个程序;即适用于 Windows、macOS 和 Linux 的可执行文件。更多详情,请访问 www.npmjs.com。
JXCore
JXcore 是一个开源项目,它引入了一个独特的功能,用于将源文件和其他资产打包和加密到 JX 包中。
根据您的操作系统和机器架构,从 https://github.com/jxcore 下载并安装 JXcore 软件包。
要打包上述项目,您只需进入此目录并发出以下 jx 命令。假设 index.js 是 Node.js 项目的入口文件 -
上述命令将打包所有内容,并创建以下两个文件 -
- index.jxp - 这是一个中间文件,其中包含编译项目所需的完整项目详细信息。
- index.jx - 这是一个二进制文件,其中包含完整的包,可以发送到您的客户端或生产环境。
考虑您的原始Node.js项目运行如下: -
使用 JXcore 编译包后,可以按如下方式启动 -