The installation instructions recommend installing bower and polymer-cli globally, and CMakeLists.txt invokes these tools directly. Using globally-installed, unfrozen tools is bad practice in all stages of development, because it results in non-deterministic output.
An alternative is making rvizweb a Node package and using npm install to install frozen versions of build tools, then defining scripts to npm run using those frozen tools. This simplifies the installation:
Instead of installing nvm, users can get Node and npm in their environment however they like. Since nodejs and npm are registered rosdeps, all special install/build steps can be factored out and this package can be built by the build farm.
Instead of globally installing build tools as part of pre-build steps, npm install can be run as part of the CMakeLists.txt build process.
Using an npm run script to build will abstract the interface used by CMakeLists.txt and use the frozen tools installed by npm install.
The package will be ready to move away from the deprecated bower to installing components with npm.
The installation instructions recommend installing bower and polymer-cli globally, and CMakeLists.txt invokes these tools directly. Using globally-installed, unfrozen tools is bad practice in all stages of development, because it results in non-deterministic output.
An alternative is making rvizweb a Node package and using
npm install
to install frozen versions of build tools, then defining scripts tonpm run
using those frozen tools. This simplifies the installation:nvm
, users can get Node and npm in their environment however they like. Sincenodejs
andnpm
are registered rosdeps, all special install/build steps can be factored out and this package can be built by the build farm.npm install
can be run as part of the CMakeLists.txt build process.npm run
script to build will abstract the interface used by CMakeLists.txt and use the frozen tools installed bynpm install
.bower
to installing components withnpm
.