voxpupuli / puppet-nodejs

Puppet module to install nodejs and global npm packages
https://forge.puppet.com/puppet/nodejs
Apache License 2.0
113 stars 247 forks source link

Using @bundle/package@version with npm keeps installing the packages #433

Open delinuxspecialist opened 3 years ago

delinuxspecialist commented 3 years ago

Affected Puppet, Ruby, OS and module versions/distributions

How to reproduce (e.g Puppet code you use)

$mypackages = ["@molgenis-ui/app-manager@0.1.4","@molgenis-ui/core-ui@0.3.1", "@molgenis-ui/legacy-lib@1.1.2","@molgenis-ui/data-row-edit@3.0.3", "@molgenis-ui/metadata-manager@0.1.8","@molgenis-ui/navigator@0.1.3", "@molgenis-ui/one-click-importer@0.1.4","@molgenis-ui/questionnaires@2.0.5", "@molgenis-ui/security@0.2.0","@molgenis-ui/settings@2.0.2"] nodejs::npm { $mypackages: ensure => 'present', target => '/var/www/html/molgenis', }

What are you seeing

Reinstalling the packages on every puppet run

What behaviour did you expect instead

Only once installing.

Output log

Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/app-manager@0.1.4]/Exec[npminstall@molgenis-ui/app-manager@0.1.4]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/core-ui@0.3.1]/Exec[npminstall@molgenis-ui/core-ui@0.3.1]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/legacy-lib@1.1.2]/Exec[npminstall@molgenis-ui/legacy-lib@1.1.2]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/data-row-edit@3.0.3]/Exec[npminstall@molgenis-ui/data-row-edit@3.0.3]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/metadata-manager@0.1.8]/Exec[npminstall@molgenis-ui/metadata-manager@0.1.8]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/navigator@0.1.3]/Exec[npminstall@molgenis-ui/navigator@0.1.3]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/one-click-importer@0.1.4]/Exec[npminstall@molgenis-ui/one-click-importer@0.1.4]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/questionnaires@2.0.5]/Exec[npminstall@molgenis-ui/questionnaires@2.0.5]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/scripts@2.0.2]/Exec[npminstall@molgenis-ui/scripts@2.0.2]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/searchall@0.1.4]/Exec[npminstall@molgenis-ui/searchall@0.1.4]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/security@0.2.0]/Exec[npminstall@molgenis-ui/security@0.2.0]/returns: executed successfully (corrective) Notice: /Stage[main]/Profile::Molgenis_nodejs/Nodejs::Npm[@molgenis-ui/settings@2.0.2]/Exec[npminstall@molgenis-ui/settings@2.0.2]/returns: executed successfully (corrective)

Any additional information you'd like to impart

I think the issue lies in the part where the module checks if the package is already installed, the version number after the last '@' is the reason it thinks the package is not installed. Same goes for the comment in Nodejs/npm when you specify 'latest' as a version number.

I worked around it by specifying every package with a version number like : nodejs::npm { '@molgenis-ui/app-manager': ensure => '0.1.4', target => '/var/www/html/molgenis', }