文章永久连接:https://tech.souyunku.com/?p=5464
Node.js 采用 事件驱动 和 异步I/O 的方式,实现了一个单线程、高并发的运行时环境
因为是单线程,所以不能很好的利用多核优势
于是 JXcore 就孕育而生了
JXcore 是一个支持多线程的 Node.js 发行版本
Node.js 现有代码不需要做任何改动就可以直接线程安全地以多线程运行
本章,我们将学习如何使用 Xcore 的打包功能
JXcore 安装
JXcore 安装包里有一个 jx 命令,这个命令可以用来打包
JXcore 安装步骤如下
1、 下载 JXcore 安装包 https://github.com/jxcore/jxcore-release
可以根据你自己的系统环境来下载安装包:
1. Window 平台下载: [Download(Windows x64 (V8))][Download_Windows x64 _V8]
2. Linux / OSX 安装
使用以下命令安装 JXcore
$ curl https://tech.souyunku.com/static/media/jx_install.sh | bash
如果权限不足,可以使用以下命令:
curl https://tech.souyunku.com/static/media/jx_install.sh | sudo bash
如果一切顺利,以下命令会输出版本信息
$ jx --version
v0.3.1.1
打包代码
假设我们某个项目有如下文件和文件夹,其中 main.js 是主文件
$ ls -lh
total 16K
drwxr-xr-x 2 penglei staff 64 10 25 10:19 css
drwxr-xr-x 2 penglei staff 64 10 25 10:19 images
-rw-r--r-- 1 penglei staff 0 10 25 10:19 index.html
-rw-r--r-- 1 penglei staff 0 10 25 10:19 index.js
drwxr-xr-x 2 penglei staff 64 10 25 10:19 js
-rw-r--r-- 1 penglei staff 739 10 25 10:01 main.js
drwxr-xr-x 22 penglei staff 704 10 25 09:18 node_modules
-rw-r--r-- 1 penglei staff 1.3K 10 25 09:15 node_site.sql
-rw-r--r-- 1 penglei staff 5.4K 10 25 09:18 package-lock.json
现在我们使用 jx 命令打包这个项目,并指定 index.js 为 Node.js 入口文件
$ jx package index.js hello-jxcore
执行以上命令后,会生成两个文件:
1、 hello-jxcore.jxp 是一个中间件文件,包含了需要编译的完整项目信息
2、 hello-jxcore.jx 是一个完整包信息的二进制文件,可运行在客户端上
载入 JX 文件
使用 JXcore jx 命令打包后,可以使用以下命令来执行生成的 jx 二进制文件
$ jx hello-jxcore.jx command_line_arguments
更多 JXcore 功能特性你可以参考官网: https://github.com/jxcore/jxcore
干货推荐
附录:Node.js 教程:系列文章
- 一、Node.js 基础教程
- 二、Node.js 环境配置
- 三、Node.js 创建第一个应用
- 四、Node.js NPM 使用介绍
- 五、Node.js 使用淘宝 NPM 镜像
- 六、Node.js REPL ( 交互式解释器 )
- 七、Node.js 回调函数
- 八、Node.js 事件循环
- 九、Node.js EventEmitter
- 十、Node.js Buffer(缓冲区)
- 十一、Node.js Stream (流)
- 十二、Node.js 模块系统
- 十三、Node.js 函数
- 十四、Node.js 开发 URL 路由
- 十五、Node.js 全局对象
- 十六、Node.js 常用工具
- 十七、Node.js 文件系统( fs 模块 )
- 十八、Node.js GET-POST 请求
- 十九、Node.js 内置模块
- 二十、Node.js WEB 模块
- 二十一、Node.js Express 框架
- 二十二、Node.js RESTful API
- 二十三、Node.js 多进程
- 【当前读到】二十四、Node.js JXcore 打包
- 二十五、Node.js 访问 MySQL 数据库
- 二十六、Node.js 访问 MongoDB
- 二十七、Node.js OS 模块
- 二十八、Node.js DNS 模块
- 二十九、Node.js Domain 模块
- 三十、Node.js Path 模块
- 三十一、Node.js Net 模块