Package Exports
- node-loader
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-loader) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-loader
A Node.js add-ons loader.
Allows to connect native node modules with .node extension.
⚠
node-loaderonly works on thenode/electron-main/electron-maintargets.
Getting Started
To begin, you'll need to install node-loader:
$ npm install node-loader --save-devSetup the target option to node/electron-main/electron-main value and do not mock the __dirname global variable.
webpack.config.js
module.exports = {
target: 'node',
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: 'node-loader',
},
],
},
};Inline
index.js
import node from 'node-loader!./file.node';And run webpack via your preferred method.
Configuration
index.js
import node from 'file.node';Then add the loader to your webpack config. For example:
webpack.config.js
module.exports = {
target: 'node',
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: 'node-loader',
},
],
},
};And run webpack via your preferred method.
Options
| Name | Type | Default | Description |
|---|---|---|---|
flags |
{Number} |
undefined |
Enables/Disables url/image-set functions handling |
name |
{String|Function} |
'[contenthash].[ext]' |
Specifies a custom filename template for the target file(s). |
flags
Type: Number
Default: undefined
The flags argument is an integer that allows to specify dlopen behavior.
See the [process.dlopen][https://nodejs.org/api/process.html#process_process_dlopen_module_filename_flags] documentation for details.
index.js
import node from 'file.node';webpack.config.js
const os = require('os');
module.exports = {
target: 'node',
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: 'node-loader',
options: {
flags: os.constants.dlopen.RTLD_NOW,
},
},
],
},
};name
Type: String|Function
Default: '[contenthash].[ext]'
Specifies a custom filename template for the target file(s).
String
webpack.config.js
module.exports = {
target: 'node',
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: 'node-loader',
options: {
name: '[path][name].[ext]',
},
},
],
},
};Function
webpack.config.js
module.exports = {
target: 'node',
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: 'node-loader',
options: {
name(resourcePath, resourceQuery) {
// `resourcePath` - `/absolute/path/to/file.js`
// `resourceQuery` - `?foo=bar`
if (process.env.NODE_ENV === 'development') {
return '[path][name].[ext]';
}
return '[contenthash].[ext]';
},
},
},
],
},
};Contributing
Please take a moment to read our contributing guidelines if you haven't yet done so.