{"id":13433079,"url":"https://github.com/h2non/nar","last_synced_at":"2025-04-05T00:10:53.603Z","repository":{"id":12980284,"uuid":"15659016","full_name":"h2non/nar","owner":"h2non","description":"node.js application archive - create self-contained binary like executable applications that are ready to ship and run","archived":false,"fork":false,"pushed_at":"2017-11-26T11:33:25.000Z","size":34059,"stargazers_count":428,"open_issues_count":13,"forks_count":23,"subscribers_count":13,"default_branch":"master","last_synced_at":"2024-10-30T08:16:41.151Z","etag":null,"topics":["archive","binary","container","embedded","executable","nodejs","portable","self-executable"],"latest_commit_sha":null,"homepage":"","language":"LiveScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/h2non.png","metadata":{"files":{"readme":"README.md","changelog":"History.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-05T21:26:31.000Z","updated_at":"2024-08-05T03:00:08.000Z","dependencies_parsed_at":"2022-08-31T05:01:51.025Z","dependency_job_id":null,"html_url":"https://github.com/h2non/nar","commit_stats":null,"previous_names":[],"tags_count":62,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2non%2Fnar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2non%2Fnar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2non%2Fnar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/h2non%2Fnar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/h2non","download_url":"https://codeload.github.com/h2non/nar/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247266565,"owners_count":20910836,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["archive","binary","container","embedded","executable","nodejs","portable","self-executable"],"created_at":"2024-07-31T02:01:20.725Z","updated_at":"2025-04-05T00:10:53.586Z","avatar_url":"https://github.com/h2non.png","language":"LiveScript","readme":"# nar [![Build Status](https://api.travis-ci.org/h2non/nar.svg?branch=master)][travis] [![NPM version](https://badge.fury.io/js/nar.svg)][npm] ![Total Downloads](https://img.shields.io/npm/dt/nar.svg)\n\nIdiomatic application packager utility for [node.js](http://nodejs.org) to **[create](https://gist.github.com/h2non/ad21e0eda698e68e7743) self-contained executable applications** that are **ready-to-ship-and-run**.\n\nnar provides **built-in support** for **creating**, **extracting**, **installing** and **running**\napplications easily from a simple [configuration](#configuration) through\na featured [command-line interface](#command-line-interface)\nor evented [programmatic API](#programmatic-api).\n\nTo get started, see the [features](#features), [basic usage](#basic-usage) or read the [FAQs](#faq).\n\n**Deprecation notice**: `nar` is not longer actively maintained, so I'd encourage you to use [pkg](https://github.com/zeit/pkg) instead, which is pretty much the same, but better.\n\n## Features\n\n\u003cimg align=\"right\" height=\"165\" src=\"http://nodejs.org/images/platform-icon-generic.png\" /\u003e\n\n- Simple and featured command-line interface\n- Simple evented programmatic API\n- Fully configurable from `package.json`\n- Supports pre/post run hooks (based on [npm scripts][npm-scripts])\n- Able to download and run archives from remote servers\n- Able to install archives from local and remote servers (like npm does)\n- Able to embed global dependencies\n- Able to embed dependencies by type\n- Able to embed node/io.js binary, also supporting multiple versions\n- Able to install archives like npm does\n- Able to create archives like raw binaries (fully self-contained)\n- Integrable in your development workflow through [Grunt][grunt-plugin] or [Gulp][gulp-plugin]\n- Uses tarball bitstream with gzip compression/decompression\n- Transparent file checksum integrity verification\n- Well tested (+270)\n\n## Contents\n\n- [Installation](#installation)\n- [Basic usage](#basic-usage)\n  - [Executables](#executables)\n- [Configuration](#configuration)\n  - [Options](#options)\n  - [Hooks](#hooks)\n- [Command-line interface](#command-line-interface)\n  - [create](#create)\n  - [extract](#extract)\n  - [run](#run)\n  - [install](#install)\n  - [get](#get)\n  - [list](#list)\n- [Programmatic API](#programmatic-api)\n- [FAQ](#faq)\n- [Contributing](#contributing)\n- [Development](#development)\n- [License](#license)\n\n## Installation\n\n```bash\nnpm install -g nar\n```\n\nIf you want to use the [programmatic API](#programmatic-api), install it as direct package dependency\n```bash\nnpm install nar --save[-dev]\n```\n\n## Basic usage\n\nCreating a new archive (reading metadata from `package.json`)\n```bash\nnar create\n```\n\nExtracting archive files\n```bash\nnar extract app-0.1.0.nar\n```\n\nRunning an application archive\n```bash\nnar run app-0.1.0.nar\n```\n\nInstalling nar archive (default to `node_modules`)\n```bash\nnar install app-0.1.0.nar --save[-dev]\n```\n\nInstalling from remote server is also supported\n```bash\nnar install http://server.net/app-0.1.0.nar --save[-dev]\n```\n\n### Executables\n\n`nar` also provides support for creating **executables binary-like** archives which\nhas `node/io.js` binary embedded, and therefore, is not required\nto have it already installed in the target OS\n\nThis is a useful feature when you need to deploy or test\nnode applications in fresh or isolated servers\n\nCreate the executable:\n```bash\nnar create --executable\n\u003e Creates: myapp-0.1.0-linux-x64.nar\n```\n\nThen you can run it as simple as:\n```bash\nchmod +x myapp-0.1.0-linux-x64.nar\n./myapp-0.1.0-linux-x64.nar start --args-start='--port 8080 --env dev'\n```\n\nIf you need to pass custom arguments to your application, instead\nof use the `--args-start` flag, you could use the `exec` command directly\n```bash\n./myapp-0.1.0-linux-x64.nar exec --port 8080 --env dev\n```\n\nYou can also embed a custom node binary per platform, processor architecture and version\n```bash\nnar create --executable --os darwin --arch x64 --node 0.12.0\n```\n\n```bash\nnar create --executable --os darwin --arch x64 --io 1.1.0\n```\n\n**Supported platforms**:\n- `linux` (x86, x64, armv7l)\n- `darwin` (x86, x64, armv7l)\n- `sunos` (x86, x64, armv7l)\n\n**Note**: `armv7l` is only available in io.js and linux platform\n\n**Supported `node` versions**:\n- `0.8.x`\n- `0.9.x`\n- `0.10.x`\n- `0.11.x`\n- `0.12.x`\n- `4.x`\n- `5.x`\n- `6.x`\n\n**Supported `io.js` versions**:\n- `1.x`\n- `2.x`\n- `3.x`\n\nHelp: you can build and distribute `nar` executables with auto installer using the [installer](https://github.com/h2non/nar-installer) script\n\n## Configuration\n\nExample `package.json` with full configuration\n```json\n{\n  \"name\": \"my-package\",\n  \"version\": \"1.0.0\",\n  \"archive\": {\n    \"dependencies\": true,\n    \"devDependencies\": false,\n    \"globalDependencies\": [\"npm\", \"bower\", \"http-server\"],\n    \"patterns\": [\"**\", \"!test/**\"]\n  },\n  \"scripts\": {\n    \"start\": \"node app --env ${ENV}\"\n  },\n  \"dependencies\": {\n    \"some\": \"~0.1.0\"\n  }\n}\n```\n\n### Options\n\nFollowing options can be declared in your application `package.json` as\nproperties members of the `archive` object\n\n#### dependencies\nType: `boolean`\nDefault: `true`\n\nInclude runtime dependencies in the archive, loaded from `package.json`\n\n#### devDependencies\nType: `boolean`\nDefault: `false`\n\nInclude development dependencies in the archive, loaded from `package.json`\n\n#### peerDependencies\nType: `boolean`\nDefault: `true`\n\nInclude peer dependencies in the archive, loaded from `package.json`\n\n#### globalDependencies\nType: `array`\nDefault: `null`\n\nInclude global dependencies in the archive.\nIt should define an array of strings with packages names\n\nnar will resolve global installed packages (via [requireg][requireg])\nand will add them to the archive\n\nGlobal dependencies will be placed in `.node/lib/node` on archive extraction and them will be\navailable both via `require` and `PATH` environment variable (for binary files)\n\n#### binary\nType: `boolean`\nDefault: `false`\n\nInclude the node binary in the nar archive.\nThis is useful when you want to deploy a fully self-contained application\nwhich works in a sandboxed runtime environment\n\nThe included node binary will be, by default, the same as the used when your\ncreate the archive (taken from `process.execPath`)\n\nHooks scripts that requires `node` will use the self-contained binary inside the archive.\nIt will be accessible via `PATH` environment variable.\nIf you want to use node from `package.json` hook scripts, you could simply use: `node script.js`\n\n**Note**: the node binary is OS and platform specific.\nTake this into account if you are going to deploy the archive in multiple platforms\n\n#### binaryPath\nType: `string`\nDefault: `process.execPath`\n\nCustom `node` binary path to add into the archive\n\nYou must define the `binary` option as `true` in order to apply this.\nYou can use interpolated environment variables expressions in\nthis option, like `${HOME}/binaries/node`\n\nAditionally, you can also define the `binaryPath` value from the `NAR_BINARY`\nenvironment variable\n\n#### ignoreFiles\nType: `boolean`\nDefault: `true`\n\nEnable/disable [ignore-like files](#ignoring-files) processing in order to load\nfiles patterns to discard from the archive\n\n#### patterns\nType: `array`\nDefault: `['**']`\n\n[Glob][glob] patterns for matching files to include or exclude in the archive.\nOS level specific hidden files such as `.DS_Store` or `Thumbs.db` will be ignored by default\n\nAditionally, `nar` will ignore matched patterns defined in [ignore-like files](#ignoring-files)\n\n### Hooks\n\n`nar` supports application pre/post execution hooks, that are also supported by `npm`\n\nYou should define them from `package.json` in the `scripts` member (see [npm scripts][npm-scripts])\n\nSupported hooks (by execution order):\n\n- `prestart`\n- `start`\n- `stop`\n- `poststop`\n\nConfiguration example:\n\n```json\n{\n  \"name\": \"app\",\n  \"version\": \"1.0.0\",\n  \"scripts\": {\n    \"prestart\": \"mkdir -p temp/logs\",\n    \"start\": \"node app --env ${ENV}\",\n    \"stop\": \"rm -rf cache\"\n  }\n}\n```\n\n#### Aditional useful features\n\n##### Environment variables in hook commands\n\nYou can consum environment variables from hook comands using the `${VARNAME}` notation\n\n##### Nar-specific execution environment\n\nnar will expose the `NODE_NAR` environment variable in the hooks execution contexts and node application\n\nYou can make any environment runtime checks if your application needs a different behavior\ndependending of the runtime environment\n\n##### Ignoring files\n\nnar will find ignore-like files in order to load\nand match patterns of files to discard\n\nSupported files by priority are (the first one found implies to ignore other ones):\n\n- `.narignore`\n- `.buildignore`\n- `.npmignore`\n- `.gitignore`\n\n## Command-line interface\n\n```bash\nUsage: nar [options] [command]\n\nCommands:\n\n  help\n    Output usage information\n  create [options] [path]\n    Create a nar archive\n  extract [options] \u003carchive\u003e\n    Extract archive\n  run [options] \u003carchive\u003e\n    Run archive files\n  list [options] \u003carchive\u003e\n    List archive files\n  install [options] \u003carchive\u003e\n    Install archive\n  get [options] \u003curl\u003e\n    Download archive from HTTP server\n\nOptions:\n\n  -h, --help     output usage information\n  -V, --version  output the version number\n\nUsage examples:\n\n  $ nar create\n  $ nar run app.nar\n  $ nar extract app.nar -o some/dir\n  $ nar list app.nar\n  $ nar install app.nar --save\n  $ nar get http://server.net/app.nar\n\nCommand specific help:\n\n  $ nar \u003ccommand\u003e --help\n```\n\n### create\nAlias: `c` `build`\n\nCreate a new archive from an existent application\n\n```bash\n$ nar create\n$ nar create some/path --debug\n$ nar create path/to/package.json -o some/dir\n$ nar create --dev-dependencies --global-dependencies 'npm, grunt-cli'\n$ nar create --omit-dependencies\n$ nar create --verbose\n$ nar create --executable\n```\n\n### extract\nAlias: `e`\n\nExtract archive files into directory\n\n```bash\n$ nar extract\n$ nar extract app.nar\n$ nar extract app.nar -o some-dir\n$ nar extract app.nar --debug\n```\n\n### run\nAlias: `x` `start`\n\nRun nar archive application\n\n```bash\n$ nar run app.nar\n$ nar run app.nar --no-hooks\n$ nar run app.nar --no-clean --debug\n$ nar run app.nar --verbose\n$ nar run app.nar --args-start '--env ${ENV}'\n$ nar run app.nar --args-stop '--path ${PATH}'\n$ nar run http://server.net/app.nar\n```\n\n### install\nAlias: `i`\n\nInstall nar archive as dependency (defaults to `node_modules`)\n\n```bash\n$ nar install app.nar --save\n$ nar install app.nar -o some/dir --save-dev\n$ nar install app.nar --debug\n$ nar install http://server.net/app-0.1.0.nar\n$ nar install -g http://server.net/app-0.1.0.nar\n```\n\n### get\nAlias: `g` `download`\n\nDownload a remote archive\n\n```bash\n$ nar get http://server.net/app.nar\n$ nar get http://server.net/app.nar --user john --password pa$s\n$ nar get http://server.net/app.nar --proxy http://proxy:3128\n$ nar get http://server.net/app.nar --strict-ssl --timeout 60000\n```\n\n### list\nAlias: `l` `show`\n\nList files from archive\n\n```bash\n$ nar list app.nar\n$ nar list app.nar --no-table\n```\n\n## Programmatic API\n\n`nar` provides a full featured programmatic API designed to easy to use from other node applications\n\nThe API is full asynchronous event based\n\n```js\nvar nar = require('nar')\n\nvar options = {\n  path: 'my/package.json', // defaults to ./package.json\n  dest: 'build/', // defaults to current directory\n  binary: true, // embed node binary to use it when run the archive\n  dependencies: true, // embed dependencies declared in package.json\n  devDependencies: true, // the same for dev dependencies\n  globalDependencies: ['npm', 'grunt-cli'] // and for globals :)\n}\n\nnar.create(options)\n  .on('error', function (err) {\n    throw err\n  })\n  .on('info', function (nar) {\n    console.log(nar.name)\n  })\n  .on('entry', function (file) {\n    console.log('Adding file:', file.name)\n  })\n  .on('end', function (path) {\n    console.log('Archive created in:', path)\n  })\n```\n\n### nar.create(options)\nFired events: `end, error, entry, archive, message, info, start`\n\nCreate new archive based a the given `package.json` and additional defined options\n\n##### Options\n\nYou can pass any configuration [options](#options) and the following options:\n\n- **path** `string` Path to package.json or application directory. Required\n- **dest** `string` Extract destination path. Default to random temporal directory\n- **file** `string` Archive file name. Default to package name + version, taken from `package.json`\n- **patterns** `array` List of glob patterns to match files to include or exclude. See [node-glob](https://github.com/isaacs/node-glob)\n\n### nar.createExec(options)\n\nSame as `nar.create()`, but this generate an executable binary-like archive\n\nAditional executable options supported are:\n\n- **os** `string` Node.js OS binary platform to embed. Detault to runtime OS\n- **arch** `string` Node.js OS binary architecture to embed. Default to runtime OS arch\n- **node** `string` Node.js version to embed. Default to the current node runtime version\n\n### nar.extract(options)\nFired events: `end, error, entry, archive, message, info, start`\n\nExtract archive files into an output directory\n\n##### Options\n\n- **path** `string` Path to nar archive. Required\n- **dest** `string` Extract destination path. Default to random temporal directory\n- **tmpdir** `string` Temporal directory to use. Default to random temporal directory\n\n### nar.run(options)\nFired events: `end, error, entry, archive, command, info, start, stdout, stderr, exit`\n\nRead, extract and run an application. It will read [command scripts][npm-scripts] hooks in `package.json`\n\n##### Options\n\n- **path** `string` Path to nar archive. Required\n- **dest** `string` Extract destination path. Defaults to random temporal directory\n- **args** `object` Aditional argument to pass to hooks. Keys must have the same hook name\n- **hooks** `boolean` Enable/disable run command hooks. Defaults to `true`\n- **clean** `boolean` Clean app directory on exit. Defaults to `true`\n\n### nar.list(options)\nOptions: `path`\n\nFired events: `end, error, entry`\n\nRead and parse a given .nar archive, emitting the `entry` event for each existent file\n\n##### Options\n\n- **path** `string` Path to nar archive. Required\n\n### nar.install(options)\nFired events: `end, download, downloadEnd, error, entry, start, progress`\n\nInstall archive as dependency in `node_modules` directory.\nIt can aditionally download the archive from remote server\n\n##### Options\n\n- **path** `string` Path to nar archive. Required if `url` is empty\n- **url** `string` URL to download the archive. Required if `path` is empty\n- **filename** `string` Downloaded filename. Defaults taken from URI path\n- **dest** `string` Install destination path. Defaults to random `node_modules`\n- **clean** `boolean` Clean downloaded archive after install. Defaults to `true`\n- **proxy** `string` Proxy server URL. Default taken from environment variable `http_proxy`\n- **auth** `object` user and password for HTTP basic authentication\n- **timeout** `number` HTTP request timeout in ms. Defaults to `10000`\n- **headers** `object` Define aditional HTTP request headers\n- **strictSSL** `boolean` Performs HTTP request with valid SSL servers. Defaults to `false`\n- **save** `boolean` Save installed package as runtime dependency in `package.json`. Default to `false`\n- **saveDev** `boolean` Save installed package as development dependency in `package.json`. Default to `false`\n- **savePeer** `boolean` Save installed package as peer dependency in `package.json`. Default to `false`\n- **global** `boolean` Install package as global dependency. Default to `false`\n\n### nar.get(options)\nAlias: `download`\n\nFired events: `end, error, download, progress`\n\nDownload archive from remote server.\nIt supports basic HTTP authentication and proxy\n\n##### Options\n\n- **path** `string` Path to nar archive. Required if `url` is empty\n- **url** `string` URL to download the archive. Required if `path` is empty\n- **dest** `string` Install destination path. Defaults to random `node_modules`\n- **filename** `string` Downloaded filename. Defaults taken from URI path\n- **clean** `boolean` Clean downloaded archive after install. Defaults to `true`\n- **proxy** `string` Proxy server URL. Default taken from environment variable `http_proxy`\n- **auth** `object` user and password for HTTP basic authentication\n- **timeout** `number` HTTP request timeout in ms. Defaults to `10000`\n- **strictSSL** `boolean` Performs HTTP request with valid SSL servers. Defaults to `false`\n\n### nar.VERSION\nType: `string`\n\n### Events\n\nComplete list of available events for subscription\n\n- **end** `([result])` Task was completed successfully\n- **error** `(error)` Some error happens and task cannot be completed\n- **entry** `(entry)` On read/write file, usually fired from file streams\n- **archive** `(archive)` Emit the archive that is being processed\n- **message** `(message)` General information status message, useful for debugging purposes\n- **download** `()` Starts a download process\n- **command** `(command)` Hook command to execute when run an application\n- **info** `(config)` Expose the nar archive config\n- **start** `(command)` On application start hook command\n- **stdout** `(string)` Command execution stdout entry. Emits on every chunk of data\n- **stderr** `(string)` Command execution stderr entry. Emits on every chunk of data\n- **exit** `(code, hook)` When a hook command process ends\n\n## FAQ\n\n##### Which kind of archive is nar?\n\nnar archives are just a tarball containers with gzip compression.\nIt's equivalent to a file with `tar.gz` extension, so you can extract\nit with `tar`, `7zip` or file compression tools ans inspect the archive contents\n\nExample using `tar`\n```bash\n$ tar xvfz app-0.1.0.nar\n```\n\n**Note**: this is not applied for `nar` executables, since they have another format\nand not just a tarball file interface\n\n##### Is required to have installed node or nar in order to work with nar archives?\n\nNo. From version `0.3.0` you can create executable binary-like applications containers\nand there is no more required to have previously installed `node` or `nar` in order\nto run, install or extract an application\n\nYou can create an executable archive simply passing a flag\n```bash\n$ nar create --executable\n```\n\nThen you could run it like a binary:\n```bash\n$ ./app-0.1.0-linux-x64.nar [run|extract|install] [options]\n```\n\nIf you don't create your archive with this option, you must to have `nar`\n(and consequently node) installed in the target computer\n\n##### nar executables runs in Windows?\n\nNo. `nar` executables only can run in POSIX operative systems (GNU/Linux, Darwin or SunOS)\n\nIs not planned to support it due to technical limitations in Windows OS\n\n##### There is the maximum file size for nar archives?\n\nV8 JavaScript engine (which node uses) has a heap memory limit of 1 GB. This is teorically the maximum fize limit, however, it can variadic depend on the number of files and its sizes, and also based on your machine memory resources and OS (if you are running Windows) when creating, running or extracting `nar` archives\n\nHowever, `nar` was tested in real projects creating archives which contains thousands of files and which the generated archive has more than 100 MB of file size\n\n##### Which binary is used in nar executables?\n\nThe node binary that is begin used when the `nar` archive is created\n\nTo be exactly, the binary that\n[process.execPath](http://nodejs.org/api/process.html#process_process_execpath) points to\n\nThat means, if you create an executable archive in OSX and then deploy it into a GNU/Linux server, it will fail.\nIf you want to create a `nar` archive for different OS, you must create a `nar` [executable](#executables)\npassing the target OS and, optionally, the processor architecture or node.js version, like this:\n\n```bash\nnar create --executable --os linux --arch x64 --node 0.11.9\n```\n\n##### When will be used embedded node binary in the archive?\n\nWhen you use the `run` command, if the archive you are running has a node binary embedded\nand therefore it was created with the `binary` option set `true`,\nyour application will use it transparently\n\n##### Which MIME type is recommened to serve nar files?\n\nOne of the following types will be valid:\n\n- `application/x-gzip`\n- `application/x-compress`\n- `application/x-compressed`\n- `application/octet-stream`\n\n##### Can I download archives which requires server authentication?\n\nOf course. You could use both methods:\n\nPassing credentials via optional flags:\n```\n$ nar get https://server.net/archive.nar --user john --password p@s$\n```\n\nOr using the `HTTP_USER` and `HTTP_PASSWORD` environment variables\n```\n$ HTTP_USER=john HTTP_PASSWORD=p@s$ nar get https://server.net/archive.nar\n```\n\n## Contributing\n\nWanna help? Cool! It will be really apreciated :)\n\n`nar` is completely written in LiveScript language.\nTake a look to the language [documentation][livescript] if you are new with it.\nand follow the LiveScript language conventions defined in the [coding style guide][coding-style]\n\nYou must add new test cases for any new feature or refactor you do,\nalways following the same design/code patterns that already exist\n\n## Development\n\nOnly [node.js](http://nodejs.org) is required for development\n\nClone/fork this repository\n```\n$ git clone https://github.com/h2non/nar.git \u0026\u0026 cd nar\n```\n\nInstall dependencies\n```\n$ npm install\n```\n\nCompile code\n```\n$ make compile\n```\n\nRun tests\n```\n$ make test\n```\n\nPublish a new version\n```\n$ make publish\n```\n\n## License\n\n[MIT](http://opensource.org/licenses/MIT) © Tomas Aparicio\n\n[livescript]: http://livescript.net\n[coding-style]: https://github.com/gkz/LiveScript-style-guide\n[travis]: http://travis-ci.org/h2non/nar\n[gemnasium]: https://gemnasium.com/h2non/nar\n[npm]: http://npmjs.org/package/nar\n[npm-scripts]: https://www.npmjs.org/doc/misc/npm-scripts.html\n[glob]: https://github.com/isaacs/node-glob\n[requireg]: https://github.com/h2non/requireg\n[grunt-plugin]: https://github.com/h2non/grunt-nar\n[gulp-plugin]: https://github.com/h2non/gulp-nar\n","funding_links":[],"categories":["LiveScript","Packages","Number"],"sub_categories":["Miscellaneous"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh2non%2Fnar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fh2non%2Fnar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fh2non%2Fnar/lists"}