首页 > 解决方案 > Node-Red 自定义 node_modules 位置

问题描述

我正在使用嵌入在我的 Express.js 应用程序中的 node-red,例如 https://nodered.org/docs/embedding。当像这样嵌入时 node-red 无法从 npm 加载新节点。

问题是在 settings.js 中定义自定义用户目录时,例如userDir: 'node-red-data/'Node-red 将加载的节点添加到 node_modules 内的此文件夹中。

所以我有两个 node_modules 文件夹:

myapp/node_modules => this is containing node-red
myapp/node-red-data/node_modules => this is containing node-red extra nodes

一些 node-red 无法在侧面加载模块的方式myapp/node-red-data/node_modules

有什么解决办法吗?

标签: node.jsnpmnode-rednpm-link

解决方案


问题出在设置文件上。

我在用户目录中的设置:

var settings = {
    httpAdminRoot: '/admin',
    httpNodeRoot: '/ap',
    nodesDir: '/nodes',
    flowFile: "flows.json",
    userDir: './data/'
}

正确设置:

var path = require('path');
var dir = path.dirname(__filename);
var settings = {
    httpAdminRoot: '/admin',
    httpNodeRoot: '/ap',
    nodesDir: dir + '/nodes',
    flowFile: "flows.json",
    userDir: dir+'/data/'
}

因此,将静态路径添加到用户目录和节点目录使其工作


推荐阅读