npm install --save-dev b64-loader
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
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",
}]
}
};
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 |
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"
}
}]
}
};
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',
]
}
}]
}
};
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',
]
}
}
}]
}
};
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
'.',
]
}
}
}]
}
};
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);