I'm currently upgrading UIBuilder on my project from version 3 to 6.
There is a breaking change in version 5.0 that remove the files packageList.json and masterPackageList.json.
It was pretty useful because when creating a project, a list of default npm module was installed in the project.
To explain how I use it. When building the docker image, I also install a list of module. So when the creating a new node-red project those package where available by default.
Is there a way to keep this behavior with UIBuilder 6.0 ?
Hi Elronde, thanks for raising this and sorry for causing you an issue.
The packageList was actually integrated into UIBUILDER's package.json. I appreciate though that this might not have quite the same features.
So if you are including UIBUILDER in a Docker image, you can simply add your required modules to UIBUILDER's package.json file. However, if you do that without pre-installing the modules into the Docker image, you would need to run an npm install script from the uibRoot folder at some point before running.
Thank for your answer. I do have the module installed when node-red isn't in project mode. But when creating a project. The uibuilder package.json (which contains the modules) isn't copied inside the /<project_name>/uibuilder/package.json
Ah, I don't use projects, had a few too many issues with them. I guess uibuilder creates a new blank package.json for a new project?
Perhaps I need to re-introduce a method that would force a set of modules into the package.json when it is created? Nobody has commented on this previously I'm afraid. But I am certainly open to suggestions and there is a bit of time before v7 gets released so I expect something could be squeezed in.
Initial thinking is that there will be a new but optional file in the <uibRoot>/.config/ folder, called something like projectPackage.json. It would be, I think a sub-set of a standard package.json A full package.json on 2nd thoughts so that it would be easy to copy/paste your current <uibRoot>/package.json. That will let you include a default version, description, etc if you wish along-side the dependencies.
I will attempt to also trap a new project create to run the install if I can. Otherwise, it will display a notification for the user to run that manually. Not certain whether Node-RED will have to be restarted, I will try to avoid that but it might not be possible. Will have to test.