Node.js アドオンローダー。
.node
拡張子を持つネイティブノードモジュールを接続できます。
⚠
node-loader
はnode
/async-node
/electron-main
/electron-renderer
/electron-preload
ターゲットでのみ動作します。
まず、node-loader
をインストールする必要があります
npm install node-loader --save-dev
または
yarn add -D node-loader
または
pnpm add -D node-loader
target
オプションを node
/async-node
/electron-main
/electron-renderer
/electron-preload
値に設定し、__dirname
グローバル変数をモックしないでください。
webpack.config.js
module.exports = {
target: "node",
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: "node-loader",
},
],
},
};
index.js
import node from "node-loader!./file.node";
そして、お好みの方法で webpack
を実行します。
index.js
import node from "file.node";
次に、ローダーを webpack
設定に追加します。例えば
webpack.config.js
module.exports = {
target: "node",
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: "node-loader",
},
],
},
};
そして、お好みの方法で webpack
を実行します。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
フラグ | {Number} | 未定義 | url /image-set 関数の処理を有効/無効にします |
名前 | {String|Function} | '[contenthash].[ext]' | ターゲットファイルのカスタムファイル名テンプレートを指定します。 |
flags
タイプ:Number
デフォルト:undefined
flags
引数は、dlopen の動作を指定できる整数です。詳細については、process.dlopen
のドキュメントを参照してください。
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
タイプ:String|Function
デフォルト:'[contenthash].[ext]'
ターゲットファイルのカスタムファイル名テンプレートを指定します。
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]";
},
},
},
],
},
};
まだ行っていない場合は、貢献ガイドラインをお読みください。