Releases: pmq20/node-packer
Releases · pmq20/node-packer
Latest Windows Pre-release
windows-x64 CI: name assets with version number
Latest Linux Pre-release
linux-x64 CI: name assets with version number
Latest macOS Pre-release
darwin-x64 CI: name assets with version number
Node.js Compiler v1.5.0
- upgrade Node.js runtime to v8.3.0
- upgrade libsquash to v0.8.0
- allow creating files inside an existing folder of memfs
- removes the temporary directory and files at exit
 
- produce an executable squash_samplewhenBUILD_SAMPLEin cmake- let CI discover linking errors earlier about the sample
 
- intercept CreateProcessW- unsets lpCurrentDirectorywhen it was set to__enclose_io_memfs__paths
 
- unsets 
- intercept SetCurrentDirectoryW,GetCurrentDirectoryW
- implement enclose_io_mkdirfor Windows- intercept _wmkdir
 
- intercept 
- intercept CreateFileW()with writing- redirect CreateFileW()with writing inside the memfs to a temporary directory
- removes the temporary directory and files at exit
 
- redirect 
 
- allow creating files inside an existing folder of memfs
- add options to generate installers
- add --pkg: generates a pkg installer for macOS
 
- add 
- fix bad package versions for product.wxs when generating MSI installers
- Fix bad versions in MSI like 1.0.0-rc.9
 
- Fix bad versions in MSI like 
- fix the example code on compiling a web application
- removes the following files automatically before compiling
- .git,- a.exe,- a.out
- node_modules/node/bin/node.exe
- node_modules/.bin/node.exe
- node_modules/node/bin/node
- node_modules/.bin/node
- fixes #57
 
- set ENCLOSE_IO_CHDIRenv var ifoptions.cwdis set inchild_process.spawn- call process.chdirat start-up whenENCLOSE_IO_CHDIRis set
 
- call 
Download: http://enclose.io/nodec
Translations in Chinese:
- 将编译器的 Node.js 运行时升级到了 v8.3.0
- 将 libsquash 升级到了 v0.8.0
- 允许在虚拟的内存文件系统中创建文件夹
- 此种请求会被转发到磁盘的临时文件夹,并在退出时删除运行时所创建的文件夹及其内容
 
- 让 cmake 在 BUILD_SAMPLE的时候生成一个squash_sample可执行文件- 这可以让 CI 今早发现 sample 代码链接阶段的问题
 
- 劫持 CreateProcessW系统调用- 当第八个参数 lpCurrentDirectory被设定为__enclose_io_memfs__路径时清空这个参数,以防出错
 
- 当第八个参数 
- 劫持 SetCurrentDirectoryW,GetCurrentDirectoryW系统调用
- 为 Windows 实现 enclose_io_mkdir函数- 为 Windows 劫持 _wmkdir系统调用
 
- 为 Windows 劫持 
- 劫持 CreateFileW()系统调用的写的情况- 即允许在虚拟的内存文件系统中写文件,或在虚拟的内存文件系统中创建的文件夹内写文件
- 此种请求会被转发到磁盘的临时文件夹,并在退出时删除运行时所写的文件
 
 
- 允许在虚拟的内存文件系统中创建文件夹
- 添加更多生成安装器的选项
- 添加 --pkg以为 macOS 生成 pkg 安装器
 
- 添加 
- 修复生成 MSI 安装器时特殊的版本号导致的出错,如带有英文的 1.0.0-rc.9
- 修复编译 Web 应用示例时出错的问题
- 编译开始前自动移除下列文件
- .git,- a.exe,- a.out
- node_modules/node/bin/node.exe
- node_modules/.bin/node.exe
- node_modules/node/bin/node
- node_modules/.bin/node
- 修复 #57
 
- 设定 ENCLOSE_IO_CHDIR环境变量来处理child_process.spawn的options.cwd选项为包内虚拟路径的问题- 一旦 ENCLOSE_IO_CHDIR环境变量被设定,则启动时自动调用process.chdir切换到设定的目录
 
- 一旦 
下载地址: http://enclose.io/nodec
Node.js Compiler v1.4.0
- upgrade Node.js runtime to v8.2.0
- fix bad package names for product.wxs when generating MSI installers
- upgrade to libsquash v0.7.0
- test ifndef __USE_XOPEN_EXTENDED
 
- test ifndef 
- upgrade to libautoupdate v0.2.0
- Auto-update shall only run once in every 24 hours with help of the file ~/.libautoupdate
- add argument forcetoautoupdate()in order to force an auto-update check
- add CI to test autoupdate()
- fix failures to replace itself when TMPDIR and current file is not on the same volume
 
- Auto-update shall only run once in every 24 hours with help of the file 
- remove node_main.objbefore compiling to avoid a MS toolchain bug
- make nodec version part of the tmpdir namings
- use only the master CI
- remove node/deps/npm
Download: http://enclose.io/nodec
Translations in Chinese:
- 将编译器的 Node.js 运行时升级到了 v8.2.0
- 修复 MSI 生成时包的名字出错;名字是动态替换进去的,有些包的名字里包含@和减号等特殊字符
- 将 libsquash 升级到 v0.7.0
- 提前测试是否定义了 __USE_XOPEN_EXTENDED宏
 
- 提前测试是否定义了 
- 将 libautoupdate 升级到 v0.2.0
- 每次启动都检查更新会导致启动速度变慢,现改成了在用户主目录下记录 .libautoupdate 文件来限制 24 小时内只检查一次
- 向 autoupdate()添加force参数来强制自动更新
- 在 CI 中添加对 autoupdate()的测试
- Windows 下自动更新夸卷无法替换自身,现采取直接拿当前目录做临时目录的办法解决了这个问题
- 例如在 D:\1\2.exe 下的文件直接拿 D:\1 来做临时目录,而不再取用 C 盘
- #42
 
 
- 每次编译之前都清理 node_main.obj文件来避免遇到微软工具链的 bug 导致此文件过期
- 让 nodec 的版本号也成为临时目录命名的一部分,实现了更安全的 nodec 自我自动更新
- 简化 CI,今后只使用 master CI
- 丢弃 node/deps/npm,降低了 nodec 的分发大小
下载地址: http://enclose.io/nodec
Node.js Compiler v1.3.0
- upgrade Node.js runtime to v8.1.4
- add options to generate installers
- add --msi: generates a msi installer for Windows
 
- add 
- use a temporary directory name with nodec version when compiling
- add option --quiet to enable quiet mode
- if ENTRANCEwas not provided, then a single Node.js interpreter executable will be produced.- use this feature to warm up your tmpdir in one command: nodec --tmpdir=/your/dir
 
Download: http://enclose.io/nodec
Translations in Chinese:
- 将编译器的 Node.js 运行时升级到了 v8.1.4
- 添加生成安装器的选项
- 添加 --msi 来为您的工程生成 Windows MSI 安装器
 
- 使用取决于 Node.js 运行时版本的临时文件夹,再也不同担心升级 nodec 而导致临时文件夹过期了
- 添加选项 --quiet 来进行静默编译
- 当不提供入口 ENTRANCE 参数时,生成一个独立的 Node.js 解释器
- 可以利用此功能一键跑热临时文件夹: nodec --tmpdir=/your/dir
 
下载地址: http://enclose.io/nodec
Node.js Compiler v1.2.0
- equip nodec itself with auto-update abilities via cloud services provided by http://enclose.io
- upgrade Node.js runtime to v8.1.3
- allow Windows to spawn binaries inside the compiled product
- add environment variable ENCLOSE_IO_USE_ITSELF, which avoids injectingENCLOSE_IO_USE_ORIGINAL_NODEwhen spawning child processes
- removes Master CI Part 2, which is now part of Master CI
- add option --skip-npm-install to skip the npm install process
- start using libautoupdate to handle auto-update
- https://github.com/pmq20/libautoupdate
- remove user prompts when a new version is detected
- send header Host in Round 1
- handle possible new 302 responses after Round 1
 
- upgrade libsquash to v0.6.0
- add enclose_io_ifextract(const char* path, const char* ext_name)
- add enclose_io_if(const char* path)
- fix a NULL-dereferencing in EncloseIOFindFirstFileHelper
- convert macro ENCLOSE_IO_DOS_RETURNto a function
- rename squash_global_fdtable_mutextosquash_global_mutex
- intercept mkdir()- redirect mkdir()inside the memfs to a temporary directory
- removes the temporary directory and files at exit
 
- redirect 
- intercept open()withO_CREAT- redirect open()withO_CREATinside the memfs to a temporary directory
- removes the temporary directory and files at exit
 
- redirect 
- handle the case where binof package.json is a string, e.g. package.json ofnpm
 
- add 
Translations in Chinese:
- 通过 http://enclose.io 提供的云服务,让 nodec 自身(从本版本起)也进行自动原地更新
- 将编译器的 Node.js 运行时升级到了 v8.1.3
- 处理 package.json 的 bin内容为字符串而不是哈希的情况(如npm这个包的 package.json)
- 允许 Windows 执行编译后的自身包内的二进制文件
- 添加环境变量 ENCLOSE_IO_USE_ITSELF,用来阻止派生子进程时把自己视为 node 解释器使用
- 移除 Master CI Part 2,合并入主 Master CI
- 添加 --skip-npm-install 选项来跳过 npm install 过程
- 将自动升级的逻辑单独抽成了一个库 libautoupdate v0.1.0
- https://github.com/pmq20/libautoupdate
- 当监测到新版本时,停用用户提示,直接更新,仅给出提示“通过 CI=true 环境变量可禁用自动更新”
- 修复了第一步请求少发了 Host 头的问题
- 处理第一轮请求获取新版本时得到多个 302 响应的情况
 
- 将 libsquash 升级到了 v0.6.0
- 添加新 API enclose_io_ifextract(const char* path, const char* ext_name)
- 添加新 API enclose_io_if(const char* path)
- 修复 EncloseIOFindFirstFileHelper中的一个空指针解引用
- 将宏 ENCLOSE_IO_DOS_RETURN改写为函数调用
- 将全局锁 squash_global_fdtable_mutex重命名为squash_global_mutex
- 劫持 mkdir()系统调用- 对于那些试图在只读的内存文件系统中进行 mkdir()的系统调用转发到临时文件夹
- 让程序退出时删除此临时文件夹和其中的所有文件
 
- 对于那些试图在只读的内存文件系统中进行 
- 劫持带有 O_CREATflag 的open()系统调用- 将那些试图在只读的内存文件系统中进行带有 O_CREATflag 的open()系统调用转发到临时文件夹
- 让程序退出时删除此临时文件夹和其中的所有文件
 
- 将那些试图在只读的内存文件系统中进行带有 
 
- 添加新 API 
| Architecture | Latest Stable | |
|---|---|---|
| Windows | x86-64 | http://enclose.io/nodec/nodec-x64.zip | 
| macOS | x86-64 | http://enclose.io/nodec/nodec-darwin-x64.gz | 
| Linux | x86-64 | http://enclose.io/nodec/nodec-linux-x64.gz | 
Node.js Compiler v1.1.0
- designed and published the project homepage via Ant Design
- upgrade Node.js runtime to v8.1.1
- upgrade Libsquash to v0.5.0
- deprecate use of swprintf() to ease compiling on Windows
- interpret system calls to access()
 
- disable AutoUpdate when environment variable CIwas set
- support spawning child processes via sh -c "...", using the enclosed variable itself as the Node.js interpreter
Download Links: http://enclose.io/nodec
中文注解:
- 用 Ant Design 为 Node.js Compiler 设计、发布了项目主页
- 升级 Node.js 运行时到 v8.1.1
- 升级 Libsquash 到 v0.5.0
- 为方便在 Windows 上编译而去掉了 swprintf()
- 劫持 access() 系统调用
 
- 当环境变量 CI被设定时,禁用自动更新
- 支持以 sh -c "..."的形式派生子程序,并把打包后的进程自身作为 Node.js 解释器使用
下载地址: http://enclose.io/nodec
Node.js Compiler v1.0.0
- upgrade Node.js runtime to v8.0.0
- upgrade libsquash to v0.4.0
- add runtime support for native modules
- add CI tests for native modules
- make sure that we are able to compile web apps
- allow executing files within the enclosed package
- allow reusing the package itself as an Node.js interpreter
- on Windows, build the corresponding arch. with the node under use
- remove the ENCLOSE_IO_ALWAYS_USE_ORIGINAL_NODEhack
- add auto-update feature via --auto-update-url and --auto-update-base
中文注解:
- 升级 Node.js 运行时到 8.0.0
- 升级 libsquash 到 v0.4.0
- 支持使用 node-sass 等 C++ 扩展模块
- 支持编译 Egg 等框架开发的 Web 应用
- 支持执行包内的可执行文件,如 PhantomJS
- 支持包分发后原地自动更新
Node.js Compiler v0.9.6
- relax node.js version requirement: #27
- upgrade Node.js runtime to v7.10.0
- add hints about installing SquashFS Tools
| Operating System | Architecture | Download Link | 
|---|---|---|
| Windows | x86 | https://sourceforge.net/projects/node-compiler/files/v0.9.6/nodec.exe/download | 
| macOS | x86-64 | https://sourceforge.net/projects/node-compiler/files/v0.9.6/nodec-darwin-x64/download | 
| Linux | x86-64 | https://sourceforge.net/projects/node-compiler/files/v0.9.6/nodec-linux-x64/download |