b64-loader
v1.0.1
Published
WebPack Loader of resources and their dependencies using base64 in a temporary folder
Downloads
4
Readme
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.
:information_source: 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);