Skip to content

Releases: pmq20/node-packer

Latest Windows Pre-release

26 Sep 19:39
Compare
Choose a tag to compare
Pre-release
windows-x64

CI: name assets with version number

Latest Linux Pre-release

26 Sep 19:25
Compare
Choose a tag to compare
Pre-release
linux-x64

CI: name assets with version number

Latest macOS Pre-release

26 Sep 19:25
Compare
Choose a tag to compare
Pre-release
darwin-x64

CI: name assets with version number

Node.js Compiler v1.5.0

14 Aug 08:31
Compare
Choose a tag to compare
  • 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_sample when BUILD_SAMPLE in cmake
      • let CI discover linking errors earlier about the sample
    • intercept CreateProcessW
      • unsets lpCurrentDirectory when it was set to __enclose_io_memfs__ paths
    • intercept SetCurrentDirectoryW, GetCurrentDirectoryW
    • implement enclose_io_mkdir for Windows
      • intercept _wmkdir
    • intercept CreateFileW() with writing
      • redirect CreateFileW() with writing inside the memfs to a temporary directory
      • removes the temporary directory and files at exit
  • add options to generate installers
    • add --pkg: generates a pkg installer for macOS
  • fix bad package versions for product.wxs when generating MSI installers
    • Fix bad versions in MSI like 1.0.0-rc.9
  • 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_CHDIR env var if options.cwd is set in child_process.spawn
    • call process.chdir at start-up when ENCLOSE_IO_CHDIR is set

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 系统调用
    • 劫持 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.spawnoptions.cwd 选项为包内虚拟路径的问题
    • 一旦 ENCLOSE_IO_CHDIR 环境变量被设定,则启动时自动调用 process.chdir 切换到设定的目录

下载地址: http://enclose.io/nodec

Node.js Compiler v1.4.0

21 Jul 02:58
Compare
Choose a tag to compare
  • 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
  • upgrade to libautoupdate v0.2.0
    • Auto-update shall only run once in every 24 hours with help of the file ~/.libautoupdate
    • add argument force to autoupdate() 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
  • remove node_main.obj before 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

17 Jul 06:19
Compare
Choose a tag to compare
  • upgrade Node.js runtime to v8.1.4
  • add options to generate installers
    • add --msi: generates a msi installer for Windows
  • use a temporary directory name with nodec version when compiling
  • add option --quiet to enable quiet mode
  • if ENTRANCE was 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

06 Jul 10:59
Compare
Choose a tag to compare
  • 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 injecting ENCLOSE_IO_USE_ORIGINAL_NODE when 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
  • 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_RETURN to a function
    • rename squash_global_fdtable_mutex to squash_global_mutex
    • intercept mkdir()
      • redirect mkdir() inside the memfs to a temporary directory
      • removes the temporary directory and files at exit
    • intercept open() with O_CREAT
      • redirect open() with O_CREAT inside the memfs to a temporary directory
      • removes the temporary directory and files at exit
    • handle the case where bin of package.json is a string, e.g. package.json of npm

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_CREAT flag 的 open() 系统调用
      • 将那些试图在只读的内存文件系统中进行带有 O_CREAT flag 的 open() 系统调用转发到临时文件夹
      • 让程序退出时删除此临时文件夹和其中的所有文件
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

15 Jun 08:02
Compare
Choose a tag to compare
  • 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 CI was 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

05 Jun 08:49
Compare
Choose a tag to compare
  • 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_NODE hack
  • 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
  • 支持包分发后原地自动更新
Arch. Download
Windows x86-64 https://sourceforge.net/projects/node-compiler/files/v1.0.0/nodec-x64.exe/download
macOS x86-64 https://sourceforge.net/projects/node-compiler/files/v1.0.0/nodec-darwin-x64/download
Linux x86-64 https://sourceforge.net/projects/node-compiler/files/v1.0.0/nodec-linux-x64/download

Node.js Compiler v0.9.6

08 May 10:48
Compare
Choose a tag to compare
  • 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