ioBroker / ioBroker.javascript

Script engine for JavaScript and Blockly
MIT License
325 stars 120 forks source link

[Bug]: Dependencies will not install correctly with controller v6 #1601

Closed Zefau closed 3 months ago

Zefau commented 3 months ago

I'm sure that

Script type

any

The problem

The adapter has serval dependencies defined to be installed at adapter startup:

grafik

Accordingly to the log these dependecies are succesfully installed, but the adapter still throws an error due to missing dependecies:

grafik

grafik

iobroker.current.log (in debug mode!)

2024-06-10 20:25:01.436 - debug: javascript.0 (112762) Found installed libraries: ["async","axios","date-fns","decompress","fs-extra","mariadb","sha.js","sharp","staticmaps"] 2024-06-10 20:25:01.436 - debug: javascript.0 (112762) Found custom dependency in config: "axios@latest" 2024-06-10 20:25:04.649 - debug: javascript.0 (112762) Installed custom custom dependency: "axios@latest" 2024-06-10 20:25:04.675 - debug: javascript.0 (112762) Found custom dependency in config: "mariadb@latest" 2024-06-10 20:25:08.245 - debug: javascript.0 (112762) Installed custom custom dependency: "mariadb@latest" 2024-06-10 20:25:08.277 - debug: javascript.0 (112762) Found custom dependency in config: "sha.js@latest" 2024-06-10 20:25:11.929 - debug: javascript.0 (112762) Installed custom custom dependency: "sha.js@latest" 2024-06-10 20:25:11.933 - debug: javascript.0 (112762) Found custom dependency in config: "fs-extra@latest" 2024-06-10 20:25:14.851 - debug: javascript.0 (112762) Installed custom custom dependency: "fs-extra@latest" 2024-06-10 20:25:14.862 - debug: javascript.0 (112762) Found custom dependency in config: "decompress@latest" 2024-06-10 20:25:18.378 - debug: javascript.0 (112762) Installed custom custom dependency: "decompress@latest" 2024-06-10 20:25:18.403 - debug: javascript.0 (112762) Found custom dependency in config: "async@latest" 2024-06-10 20:25:21.442 - debug: javascript.0 (112762) Installed custom custom dependency: "async@latest" 2024-06-10 20:25:21.447 - debug: javascript.0 (112762) Found custom dependency in config: "date-fns@latest" 2024-06-10 20:25:24.486 - debug: javascript.0 (112762) Installed custom custom dependency: "date-fns@latest" 2024-06-10 20:25:24.596 - debug: javascript.0 (112762) Found custom dependency in config: "staticmaps@latest" 2024-06-10 20:25:28.137 - debug: javascript.0 (112762) Installed custom custom dependency: "staticmaps@latest" 2024-06-10 20:25:28.211 - debug: javascript.0 (112762) Found custom dependency in config: "sharp@latest" 2024-06-10 20:25:32.022 - debug: javascript.0 (112762) Installed custom custom dependency: "sharp@latest" 2024-06-10 20:25:32.048 - debug: javascript.0 (112762) Loaded TypeScript definitions for node: ["node_modules/@types/node/package.json","node_modules/@types/node/index.d.ts","node_modules/@types/node/assert.d.ts","node_modules/@types/node/assert/strict.d.ts","node_modules/@types/node/globals.d.ts","node_modules/@types/node/async_hooks.d.ts","node_modules/@types/node/buffer.d.ts","node_modules/@types/node/child_process.d.ts","node_modules/@types/node/cluster.d.ts","node_modules/@types/node/console.d.ts","node_modules/@types/node/constants.d.ts","node_modules/@types/node/crypto.d.ts","node_modules/@types/node/dgram.d.ts","node_modules/@types/node/diagnostics_channel.d.ts","node_modules/@types/node/dns.d.ts","node_modules/@types/node/dns/promises.d.ts","node_modules/@types/node/domain.d.ts","node_modules/@types/node/dom-events.d.ts","node_modules/@types/node/events.d.ts","node_modules/@types/node/fs.d.ts","node_modules/@types/node/fs/promises.d.ts","node_modules/@types/node/http.d.ts","node_modules/@types/node/http2.d.ts","node_modules/@types/node/https.d.ts","node_modules/@types/node/inspector.d.ts","node_modules/@types/node/module.d.ts","node_modules/@types/node/net.d.ts","node_modules/@types/node/os.d.ts","node_modules/@types/node/path.d.ts","node_modules/@types/node/perf_hooks.d.ts","node_modules/@types/node/process.d.ts","node_modules/@types/node/punycode.d.ts","node_modules/@types/node/querystring.d.ts","node_modules/@types/node/readline.d.ts","node_modules/@types/node/readline/promises.d.ts","node_modules/@types/node/repl.d.ts","node_modules/@types/node/sea.d.ts","node_modules/@types/node/stream.d.ts","node_modules/@types/node/stream/promises.d.ts","node_modules/@types/node/stream/consumers.d.ts","node_modules/@types/node/stream/web.d.ts","node_modules/@types/node/string_decoder.d.ts","node_modules/@types/node/test.d.ts","node_modules/@types/node/timers.d.ts","node_modules/@types/node/timers/promises.d.ts","node_modules/@types/node/tls.d.ts","node_modules/@types/node/trace_events.d.ts","node_modules/@types/node/tty.d.ts","node_modules/@types/node/url.d.ts","node_modules/@types/node/util.d.ts","node_modules/@types/node/v8.d.ts","node_modules/@types/node/vm.d.ts","node_modules/@types/node/wasi.d.ts","node_modules/@types/node/worker_threads.d.ts","node_modules/@types/node/zlib.d.ts","node_modules/@types/node/globals.global.d.ts"] 2024-06-10 20:25:32.054 - debug: javascript.0 (112762) Loaded TypeScript definitions for request: ["node_modules/@types/request/package.json","node_modules/@types/request/index.d.ts"] 2024-06-10 20:25:32.595 - info: javascript.0 (112762) requesting all states 2024-06-10 20:25:32.596 - info: javascript.0 (112762) requesting all objects 2024-06-10 20:25:33.383 - info: javascript.0 (112762) received all states 2024-06-10 20:25:33.629 - info: javascript.0 (112762) received all objects 2024-06-10 20:25:33.631 - debug: javascript.0 (112762) [sunTimeSchedules] Times: {"solarNoon":"2024-06-10T11:18:47.571Z","nadir":"2024-06-10T23:18:47.571Z","sunrise":"2024-06-10T02:51:43.027Z","sunset":"2024-06-10T19:45:52.115Z","sunriseEnd":"2024-06-10T02:56:31.660Z","sunsetStart":"2024-06-10T19:41:03.482Z","dawn":"2024-06-10T02:00:02.809Z","dusk":"2024-06-10T20:37:32.332Z","nauticalDawn":"2024-06-10T00:30:57.236Z","nauticalDusk":"2024-06-10T22:06:37.906Z","nightEnd":null,"night":null,"goldenHourEnd":"2024-06-10T03:49:02.243Z","goldenHour":"2024-06-10T18:48:32.899Z"} 2024-06-10 20:25:35.957 - info: javascript.0 (112762) Start JavaScript script.js.iobroker.adapter (Javascript/js) 2024-06-10 20:25:36.125 - error: javascript.0 (112762) script.js.iobroker.adapter: TypeError: axios is not a function 2024-06-10 20:25:36.125 - error: javascript.0 (112762) at update (script.js.iobroker.adapter:14:5) 2024-06-10 20:25:36.126 - error: javascript.0 (112762) at script.js.iobroker.adapter:64:1 2024-06-10 20:25:36.126 - error: javascript.0 (112762) at script.js.iobroker.adapter:71:3 2024-06-10 20:25:36.126 - error: javascript.0 (112762) at Script.runInContext (node:vm:133:12)

Version of nodejs

v20.12.2

Version of ioBroker js-controller

v6.0.1

Version of adapter

v8.5.1

foxriver76 commented 3 months ago

Hm, it looks like we need to provide the default export to stay backward compatible. As modules are now provided by await import the default export would be available like const module = (await adapter.importNodeModule('axios')).default; I would tend to say lets fix it in the adapter and just adjust the docs at https://github.com/ioBroker/ioBroker.js-controller?tab=readme-ov-file#managing-node-modules because the import is kind of more powerful.

Let me know if you have other thoughts on this @klein0r and sorry for the inconvenience.

https://github.com/ioBroker/ioBroker.js-controller/pull/2795