What an installer should do and what should be fixed:
SHOULD NEVER require UAC to install (rights asInvoker is enough)
should by default install to C:\Program Files\MediacenterJS
Include the node.exe file. Or download during the installation process to program folder LOCALLY into the BIN folder ! and probably the npm tool. And the dependencies.
a. fs-extra: use the new const fs = require('fs').promises way to not need fs-extra and work with node>10.
b. sqlite3 has been build against a specific version of node. gyp will mess this up. It does usually work, if for sqlite3, the newest version is used, because pre-gyp kicks in and downloads the precompiled binary.
c. socket.io needs to be updated as well
additionally: add electron to be able to run in background, only having a tray icon or alike (no need to package into electron, could also be downloaded during install).
should run compact /C /S:node_modules *.* to NTFS-Compact that directory to keep installed size small - or: compact /C /S node_modules\*.* to include node_modules for all future modules.
run del /F/S/Q node_modules & npm install (rd /S/Q node_modules) at the end - if dependencies were not packed into the installer for the specific node version.
needs current environment path to be prepended with the bin\node... path to work (best done in the mediacenter.exe)
What an installer should do and what should be fixed:
SHOULD NEVER require UAC to install (rights asInvoker is enough)
should by default install to
C:\Program Files\MediacenterJS
Include the
node.exe
file. Or download during the installation process to program folder LOCALLY into the BIN folder ! and probably the npm tool. And the dependencies.package.json
should contain some line like{ "engines" : { "node" : ">=8.5.0" } }
a.
fs-extra
: use the newconst fs = require('fs').promises
way to not need fs-extra and work with node>10.b. sqlite3 has been build against a specific version of node. gyp will mess this up. It does usually work, if for sqlite3, the newest version is used, because pre-gyp kicks in and downloads the precompiled binary.
c. socket.io needs to be updated as well
additionally: add electron to be able to run in background, only having a tray icon or alike (no need to package into electron, could also be downloaded during install).
should run
compact /C /S:node_modules *.*
to NTFS-Compact that directory to keep installed size small - or:compact /C /S node_modules\*.*
to include node_modules for all future modules.run
del /F/S/Q node_modules & npm install
(rd /S/Q node_modules
) at the end - if dependencies were not packed into the installer for the specific node version.bin\node...
path to work (best done in the mediacenter.exe)JADE became PUG ...