Socket
Book a DemoInstallSign in
Socket

asar-node

Package Overview
Dependencies
Maintainers
1
Versions
20
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

asar-node

Enable require('./path/to/any-node-project.asar') & require('./path/to/any-node-project.asar/any/file'). Or just run asar-node ./path/to/any-node-project.asar

Source
npmnpm
Version
2.3.0
Version published
Weekly downloads
19
-52.5%
Maintainers
1
Weekly downloads
 
Created
Source

asar-node

Enable require('./path/to/any-node-project.asar') & require('./path/to/any-node-project.asar/any/file') in your nodejs app.

Usage

$ npm install -g asar-node

Exists ./path/to/any-node-project.asar

$ asar-node ./path/to/any-node-project # OK!
$ asar-node ./path/to/any-node-project.asar # OK!

$ asar-node ./path/to/any-node-project.asar/any/file # OK!
$ asar-node ./path/to/any-node-project.asar/any/file.js # OK!
$ asar-node ./path/to/any-node-project.asar/any/file.json # OK!
$ asar-node ./path/to/any-node-project.asar/any/file.node # OK!

Or

require('asar-node').register()
// Equivalent to require('asar-node/lib/register.js').register()

require('./path/to/any-node-project') // like require a nodejs directory
// or require('./path/to/any-node-project.asar')
require('./path/to/any-node-project.asar/any/file')

If require a asar file, make sure there is package.json and main field or index.js / index.json / index.node in the asar root.

You can also pack node_modules into node_modules.asar instead of packing the hole project folder into an asar file.

To let node find modules from node_modules.asar, You should

const { register, addAsarToLookupPaths } = require('asar-node')
// Equivalent to 
// const register = require('asar-node/lib/register.js').register
// const addAsarToLookupPaths = require('asar-node/lib/lookup.js').addAsarToLookupPaths

register()
addAsarToLookupPaths()

const Koa = require('koa') // koa is in node_modules.asar

In an electron project, it's unnecessary to call register() but you can also call addAsarToLookupPaths() to enable node_modules.asar support.

Migrate from v1

v1.x

require('asar-node')

v2.x

require('asar-node/lib/autorun/index')

Note

  • Only these fs api functions are available in asar file and you should use absolute path. Also child_process api is not supported in asar file.

    • fs.readFileSync()
    • fs.createReadStream()
    • fs.statSync()
    • fs.lstatSync()
    • fs.readdirSync()
    • fs.existsSync()
    • fs.realpathSync()
  • If your nodejs project use C++ native addons, please unpack it from asar file by specifying --unpack=*.node to asar CLI

  • Express or Koa serving static file in asar file is not supported, but you can unpack the static file folder.

Keywords

asar

FAQs

Package last updated on 12 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts