b64-loader

1.0.1 • Public • Published

npm used by node deps

Native Resource base64 loader

Install

npm install --save-dev b64-loader

Usage

Loader for embedding native add-ons in projects of nodes or electrons by unpacking native add-ons and their dependencies from base64 in a temporary folder.

ℹ️ WebPack Target: Node

Example

index.js

import pty from "./blessed/pty.js";
export default pty;

webpack.config.js

module.exports = {
  target: 'node',
  module: {
    rules: [{
      test: /\.node$/,
      loader: "b64-loader",
    }]
  }
};

Options

Name Type Default Description
tempDir {String} 'myAddons' The name of the folder in the temporary folder
resourceDir {Boolean\|String} false One folder name for all addons
grouping {Array} [] Grouping files into one folder
dependencies {Object} {} Saving dependencies
dirs (beta) {Object} {} Saving specified files and folders

resourceDir

Type: Boolean|String Default: false

If true then the resource folder will have a name by hashName from its path, and not by name.
Otherwise, your value.

webpack.config.js

module.exports = {
  target: 'node',
  module: {
    rules: [{
      test: /\.(node|exe|dll)$/,
      loader: "b64-loader",
      options: {
        resourceDir: true || "nameYourFolder"
      }
    }]
  }
};

grouping

Type: Array Default: []

Resource folder will have a name by hashName from resource path...

webpack.config.js

module.exports = {
  target: 'node',
  module: {
    rules: [{
      test: /\.(node|exe|dll)$/,
      loader: "b64-loader",
      options: {
        grouping: [
          'pty.node',
          'winpty.dll',
          'winpty-agent.exe',
        ]
      }
    }]
  }
};

dependencies

Type: Object Default: {}

Resource folder will have a name by hashName from resource path...

webpack.config.js

module.exports = {
  target: 'node',
  module: {
    rules: [{
      test: /\.node$/,
      loader: "b64-loader",
      options: {
        tempDir: "blessedApp",
        dependencies: {
          'pty.node': [
            'winpty.dll',
            'winpty-agent.exe',
            'obj/pty/pty.obj',
          ]
        }
      }
    }]
  }
};

dirs

Type: Object Default: {}

Resource folder will have a name by hashName from resource path...

webpack.config.js

module.exports = {
  target: 'node',
  module: {
    rules: [{
      test: /\.node$/,
      loader: "b64-loader",
      options: {
        tempDir: "blessedApp",
        dirs: {
          'linux': [
            // All files and folders in resource folder
            '.',
          ]
        }
      }
    }]
  }
};

Example without WebPack (Beta)

index.js

const Fs = require("fs-extra");
const b64Loader = require("b64-loader").custom;
 
const tempDir = "myPacker";
 
const res = b64Loader(
    "D:/projects/node/webpack/blessed/usr/linux",
    null, // No source
    {
        tempDir,
        dirs: {
            'linux': [
                // All files in `D:/projects/node/webpack/blessed/usr/`
                '.',
            ]
        }
    }
)
Fs.writeFileSync("./blessed/lib/vjuh-usr-win.js", res);

Readme

Keywords

none

Package Sidebar

Install

npm i b64-loader

Weekly Downloads

2

Version

1.0.1

License

MIT

Unpacked Size

9.66 kB

Total Files

4

Last publish

Collaborators

  • xtcry