一個 Node.js 外掛程式 載入器。
允許使用 .node
副檔名連接原生 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";
然後將 loader 加入您的 webpack
設定。例如
webpack.config.js
module.exports = {
target: "node",
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: "node-loader",
},
],
},
};
並透過您偏好的方法執行 webpack
。
名稱 | 類型 | 預設值 | 說明 |
---|---|---|---|
旗標 | {數字} | 未定義 | 啟用/停用 url /image-set 函式處理 |
名稱 | {字串|函式} | '[contenthash].[ext]' | 指定目標檔案的自訂檔名範本。 |
flags
類型:數字
預設值:未定義
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
類型:字串|函式
預設值:'[contenthash].[ext]'
指定目標檔案的自訂檔名範本。
字串
webpack.config.js
module.exports = {
target: "node",
node: {
__dirname: false,
},
module: {
rules: [
{
test: /\.node$/,
loader: "node-loader",
options: {
name: "[path][name].[ext]",
},
},
],
},
};
函式
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]";
},
},
},
],
},
};
如果您尚未閱讀我們的貢獻指南,請花點時間閱讀。