"watch:dashboard": "npm run dev",
"watch:node-red": "cd ~/.node-red && npx nodemon --watch $(realpath ./node_modules/@flowfuse/node-red-dashboard/nodes) --ext '*' --exec node-red"
},
"dependencies": {
"acorn": "^8.15.0",
"axios": "^1.13.2",
"core-js": "^3.47.0",
"d3": "^7.9.0",
"echarts": "^6.0.0",
"escodegen": "^2.1.0",
"express": "^4.22.1",
"lodash.merge": "^4.6.2",
"socket.io": "^4.8.1",
"vue": "^3.5.25"
},
"devDependencies": {
"@flowfuse/flow-renderer": "^0.5.0",
"@mdi/font": "^7.4.47",
"@unhead/vue": "^2.1.12",
"@vite-pwa/assets-generator": "^1.0.0",
"@vitejs/plugin-vue": "^5.0.4",
Isn't the dashboard served by either RED.httpNode || RED.httpAdmin express apps?
I believe that since Node-RED already has it, express should be defined as a peerDependency
"body-parser": "1.20.4",
"chalk": "^4.1.2",
"cheerio": "1.0.0-rc.10",
"clone": "2.1.2",
"content-type": "1.0.5",
"cookie": "0.7.2",
"cookie-parser": "1.4.7",
"cors": "2.8.5",
"cronosjs": "1.7.1",
"denque": "2.1.0",
"express": "4.22.1",
"express-session": "1.18.2",
"form-data": "4.0.4",
"fs-extra": "11.3.0",
"got": "12.6.1",
"hash-sum": "2.0.0",
"hpagent": "1.2.0",
"https-proxy-agent": "5.0.1",
"i18next": "25.8.14",
"iconv-lite": "0.6.3",
"is-utf8": "0.2.1",
Have you tested it as a peer dependency?
I don't know if that would work since Node-RED is generally installed globally not locally. And even when installed locally, it is likely in a higher-level folder.
I've not really played with peer-dependencies so I don't know if there are any consequences.