Coder Social home page Coder Social logo

barkinet / node-compiler Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pmq20/node-packer

0.0 2.0 0.0 37.79 MB

Compiling your Node.js application into a single executable with dynamic require and all fs.* API support.

License: MIT License

Ruby 0.02% Makefile 0.80% Shell 0.17% JavaScript 6.08% R 0.01% HTML 4.01% C++ 48.23% Python 2.71% C 23.60% Objective-C 0.04% Perl 6 0.02% Perl 3.09% CMake 0.01% Batchfile 0.07% CSS 0.03% Roff 0.28% Assembly 10.53% DIGITAL Command Language 0.24% XS 0.01% M4 0.06%

node-compiler's Introduction

Node.js Compiler

Compiling your Node.js application into a single executable.

nodec.gif

Download

Master CI RAM Test Black‑box Test Latest Stable
Windows status status status https://sourceforge.net/projects/node-compiler/files/v0.9.5/nodec.exe/download
macOS status Status Status https://sourceforge.net/projects/node-compiler/files/v0.9.5/nodec-darwin-x64/download
Linux status Status Status https://sourceforge.net/projects/node-compiler/files/v0.9.5/nodec-linux-x64/download

How it works?

Presentation

Node.js Compiler: compiling your Node.js application into a single executable.

Comparing with Similar Projects

Project Difference
pkg Pkg hacked fs.* API's dynamically in order to access in-package files, whereas Node.js Compiler leaves them alone and instead works on a deeper level via libsquash. Pkg uses JSON to store in-package files while Node.js Compiler uses the more sophisticated and widely used SquashFS as its data structure.
EncloseJS EncloseJS restricts access to in-package files to only five fs.* API's, whereas Node.js Compiler supports all fs.* API's. EncloseJS is proprietary licensed and charges money when used while Node.js Compiler is MIT-licensed and users are both free to use it and free to modify it.
Nexe Nexe does not support dynamic require because of its use of browserify, whereas Node.js Compiler supports all kinds of require including require.resolve.
asar Asar uses JSON to store files' information while Node.js Compiler uses SquashFS. Asar keeps the code archive and the executable separate while Node.js Compiler links all JavaScript source code together with the Node.js virtual machine and generates a single executable as the final product.
AppImage AppImage supports only Linux with a kernel that supports SquashFS, while Node.js Compiler supports all three platforms of Linux, macOS and Windows, meanwhile without any special feature requirements from the kernel.

Install

Windows

First install the prerequisites:

Then download the executable nodec.exe and run it from the VC++ or VS Command Prompt.

macOS

First install the prerequisites:

  • SquashFS Tools 4.3: brew install squashfs
  • Xcode
    • You also need to install the Command Line Tools via Xcode. You can find this under the menu Xcode -> Preferences -> Downloads
    • This step will install gcc and the related toolchain containing make
  • Python 2.6 or 2.7
  • GNU Make 3.81 or newer

Then,

curl -L https://sourceforge.net/projects/node-compiler/files/v0.9.5/nodec-darwin-x64/download > nodec
chmod +x nodec
./nodec

Linux

First install the prerequisites:

  • SquashFS Tools 4.3
  • gcc and g++ 4.8 or newer, or
  • clang and clang++ 3.4 or newer
  • Python 2.6 or 2.7
  • GNU Make 3.81 or newer

Then,

curl -L https://sourceforge.net/projects/node-compiler/files/v0.9.5/nodec-linux-x64/download > nodec
chmod +x nodec
./nodec

Usage

nodec [OPTION]... ENTRANCE
  -r, --root=DIR                   Specifies the path to the root of the application
  -o, --output=FILE                Specifies the path of the output file
  -d, --tmpdir=DIR                 Specifies the directory for temporary files
      --clean-tmpdir               Cleans all temporary files that were generated last time
      --keep-tmpdir                Keeps all temporary files that were generated last time
      --make-args=ARGS             Passes extra arguments to make
      --vcbuild-args=ARGS          Passes extra arguments to vcbuild.bat
  -n, --npm=FILE                   Specifies the path of npm
      --npm-package=NAME           Downloads and compiles the specified npm package
      --npm-package-version=VER    Downloads and compiles the specified version of the npm package
      --debug                      Enable debug mode
  -v, --version                    Prints the version of nodec and exit
      --node-version               Prints the version of the Node.js runtime and exit
  -h, --help                       Prints this help and exit

Example

git clone --depth 1 https://github.com/jashkenas/coffeescript.git
cd coffeescript
nodec bin/coffee
./a.out (or a.exe on Windows)

See Also

  • SquashFS: a compressed read-only filesystem for Linux.
  • Libsquash: portable, user-land SquashFS that can be easily linked and embedded within your application.
  • Enclose.IO: cloud-based service that compiles your application into a single executable.

node-compiler's People

Contributors

ibigbug avatar pmq20 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.