Hi, to make easier configure nodejs installations across multiple node and setup them to an internal nodejs.org repository would be great add support to the npm config file.
      The npm config file is an ini file but with only one single section.
      https://docs.npmjs.com/files/npmrc

      This config file will take advantage of credential support to configure authentication in case of internal npm repository.

      That I know, npm does not have an option where you could specify in the CLI the npmrc file, but
      there are four relevant places where this file is lookup. It's also possible transform each settings into enviroment variable or in a CLI option.

      https://docs.npmjs.com/misc/config

          [JENKINS-40364] Support npm configuration file

          Nikolas Falco added a comment - - edited
          1. I got it. I've fixed
            Just a question: your edit-config.jelly files includes a page named id-name-and-comment for the common attributes but from what I can see instead for show-config.jelly file common fields are rewritten from scratch (with readonly attribute). What do you think to create a common page also for view mode? so for example translations are inherited or changes to the base page will be reported to all extension point for free. (Please note that in 2.15.5 server credentials of maven settings in view mode are editable)
          2. I mean imagine that a user creates 10 new configuration and 50% of them are not valid. When user will configure the NodeJS step in a jenkins job he will see only 5 configuration in the combobox, not 10. How can user understand that missing configuration in combobox is becuase configuration are not valid and not a plugin bug?
            I have resolved doing a select widget (a dirty html/css work) that invoke a doCheckXyz method on Build descriptor delegating the task of verification on Config implementation.

          Could I suggest:

          • implement a custom select jelly widget (like that credential plugin) to facilitate integrations of configuration in custom build step/wrapper a sort of
            <j:jelly ... xmlns:cf="/lib/configfiles">
            <f:entry title="${%Config File}" field="configId">
            	<cf:select filter="${descriptor.class}" allowEmpty="true" />
            </f:entry>
            
          • add a verify method on Config base class (by default empty {} ) so each implementation could have an own logic (for example XML/JSON check well-formed)

          The verify method could be also used to validate the content during supplyFile method after token replace. This reduce user analisys on build failure.

          Keept in mind that in this way we could enforce the same failure behavior when the configuration file is handled directly by a custom build step (like maven or NodeJS) or ConfigFileBuildWrapper is used.

          Nikolas Falco added a comment - - edited I got it. I've fixed Just a question: your edit-config.jelly files includes a page named id-name-and-comment for the common attributes but from what I can see instead for show-config.jelly file common fields are rewritten from scratch (with readonly attribute). What do you think to create a common page also for view mode? so for example translations are inherited or changes to the base page will be reported to all extension point for free. (Please note that in 2.15.5 server credentials of maven settings in view mode are editable) I mean imagine that a user creates 10 new configuration and 50% of them are not valid. When user will configure the NodeJS step in a jenkins job he will see only 5 configuration in the combobox, not 10. How can user understand that missing configuration in combobox is becuase configuration are not valid and not a plugin bug? I have resolved doing a select widget (a dirty html/css work) that invoke a doCheckXyz method on Build descriptor delegating the task of verification on Config implementation. Could I suggest: implement a custom select jelly widget (like that credential plugin) to facilitate integrations of configuration in custom build step/wrapper a sort of <j:jelly ... xmlns:cf = "/lib/configfiles" > <f:entry title= "${%Config File}" field= "configId" > <cf:select filter= "${descriptor.class}" allowEmpty= "true" /> </f:entry> add a verify method on Config base class (by default empty {} ) so each implementation could have an own logic (for example XML/JSON check well-formed) The verify method could be also used to validate the content during supplyFile method after token replace. This reduce user analisys on build failure. Keept in mind that in this way we could enforce the same failure behavior when the configuration file is handled directly by a custom build step (like maven or NodeJS) or ConfigFileBuildWrapper is used.

          ok, I think I understand now...

          1. I think thats a good idea! (and thanks for the hint about the maven settings being editable!)
          2. this also is a very nice idea

          so both are cool ideas - but if you want to have this, then you have to wait for an upcoming release of the config-file-provider - I'm not sure when I will have time to implement this.

          Dominik Bartholdi added a comment - ok, I think I understand now... 1. I think thats a good idea! (and thanks for the hint about the maven settings being editable!) 2. this also is a very nice idea so both are cool ideas - but if you want to have this, then you have to wait for an upcoming release of the config-file-provider - I'm not sure when I will have time to implement this.

          Nikolas Falco added a comment - - edited

          Thanks very much to you for support.

          I release actual implementations and when new API be available I will change it.

          Nikolas Falco added a comment - - edited Thanks very much to you for support. I release actual implementations and when new API be available I will change it.

          Code changed in jenkins
          User: Nikolas Falco
          Path:
          src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java
          src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java
          src/main/java/jenkins/plugins/nodejs/NodeJSUtils.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NPMConfig.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NPMRegistry.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NpmConfigException.java
          src/main/java/jenkins/plugins/nodejs/configfiles/Npmrc.java
          src/main/java/jenkins/plugins/nodejs/configfiles/RegistryHelper.java
          src/main/java/jenkins/plugins/nodejs/configfiles/VerifyConfigProviderException.java
          src/main/resources/jenkins/plugins/nodejs/Messages.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_fr.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_it.properties
          src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly
          src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.properties
          src/test/java/jenkins/plugins/nodejs/configfiles/NPMConfigTest.java
          src/test/java/jenkins/plugins/nodejs/configfiles/RegistryHelperTest.java
          http://jenkins-ci.org/commit/nodejs-plugin/e541cfe29d2e30ef20e708fda4d55558a11df948
          Log:
          JENKINS-40364 Fix jelly file in view mode, add a validation of selected config in the combobox that appears in the build step

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Nikolas Falco Path: src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java src/main/java/jenkins/plugins/nodejs/NodeJSUtils.java src/main/java/jenkins/plugins/nodejs/configfiles/NPMConfig.java src/main/java/jenkins/plugins/nodejs/configfiles/NPMRegistry.java src/main/java/jenkins/plugins/nodejs/configfiles/NpmConfigException.java src/main/java/jenkins/plugins/nodejs/configfiles/Npmrc.java src/main/java/jenkins/plugins/nodejs/configfiles/RegistryHelper.java src/main/java/jenkins/plugins/nodejs/configfiles/VerifyConfigProviderException.java src/main/resources/jenkins/plugins/nodejs/Messages.properties src/main/resources/jenkins/plugins/nodejs/Messages_fr.properties src/main/resources/jenkins/plugins/nodejs/Messages_it.properties src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.properties src/test/java/jenkins/plugins/nodejs/configfiles/NPMConfigTest.java src/test/java/jenkins/plugins/nodejs/configfiles/RegistryHelperTest.java http://jenkins-ci.org/commit/nodejs-plugin/e541cfe29d2e30ef20e708fda4d55558a11df948 Log: JENKINS-40364 Fix jelly file in view mode, add a validation of selected config in the combobox that appears in the build step

          Code changed in jenkins
          User: Nikolas Falco
          Path:
          src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java
          src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java
          src/main/java/jenkins/plugins/nodejs/NodeJSUtils.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NPMConfig.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NPMRegistry.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NpmConfigException.java
          src/main/java/jenkins/plugins/nodejs/configfiles/Npmrc.java
          src/main/java/jenkins/plugins/nodejs/configfiles/RegistryHelper.java
          src/main/java/jenkins/plugins/nodejs/configfiles/VerifyConfigProviderException.java
          src/main/resources/jenkins/plugins/nodejs/Messages.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_fr.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_it.properties
          src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly
          src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.properties
          src/test/java/jenkins/plugins/nodejs/configfiles/NPMConfigTest.java
          src/test/java/jenkins/plugins/nodejs/configfiles/RegistryHelperTest.java
          http://jenkins-ci.org/commit/nodejs-plugin/e1be96774e55f618d8e9e96b9a84d7f6290872cd
          Log:
          JENKINS-40364 Fix jelly file in view mode, add a validation of selected config in the combobox that appears in the build step

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Nikolas Falco Path: src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java src/main/java/jenkins/plugins/nodejs/NodeJSUtils.java src/main/java/jenkins/plugins/nodejs/configfiles/NPMConfig.java src/main/java/jenkins/plugins/nodejs/configfiles/NPMRegistry.java src/main/java/jenkins/plugins/nodejs/configfiles/NpmConfigException.java src/main/java/jenkins/plugins/nodejs/configfiles/Npmrc.java src/main/java/jenkins/plugins/nodejs/configfiles/RegistryHelper.java src/main/java/jenkins/plugins/nodejs/configfiles/VerifyConfigProviderException.java src/main/resources/jenkins/plugins/nodejs/Messages.properties src/main/resources/jenkins/plugins/nodejs/Messages_fr.properties src/main/resources/jenkins/plugins/nodejs/Messages_it.properties src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.properties src/test/java/jenkins/plugins/nodejs/configfiles/NPMConfigTest.java src/test/java/jenkins/plugins/nodejs/configfiles/RegistryHelperTest.java http://jenkins-ci.org/commit/nodejs-plugin/e1be96774e55f618d8e9e96b9a84d7f6290872cd Log: JENKINS-40364 Fix jelly file in view mode, add a validation of selected config in the combobox that appears in the build step

          Code changed in jenkins
          User: Nikolas Falco
          Path:
          pom.xml
          src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java
          src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java
          src/main/java/jenkins/plugins/nodejs/NodeJSConstants.java
          src/main/java/jenkins/plugins/nodejs/NodeJSUtils.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NPMConfig.java
          src/main/java/jenkins/plugins/nodejs/configfiles/NPMRegistry.java
          src/main/java/jenkins/plugins/nodejs/configfiles/Npmrc.java
          src/main/java/jenkins/plugins/nodejs/configfiles/RegistryHelper.java
          src/main/java/jenkins/plugins/nodejs/configfiles/VerifyConfigProviderException.java
          src/main/resources/jenkins/plugins/nodejs/Messages.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_fr.properties
          src/main/resources/jenkins/plugins/nodejs/Messages_it.properties
          src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly
          src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.properties
          src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config_it.properties
          src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly
          src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.properties
          src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config_it.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/NPMConfigProvider/newInstanceDetail.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/NPMConfigProvider/newInstanceDetail.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/help-credentialsId.html
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/help-scopes.html
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/help-url.html
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.jelly
          src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.properties
          src/main/resources/jenkins/plugins/nodejs/configfiles/template.npmrc
          src/test/java/jenkins/plugins/nodejs/NodeJSBuildWrapperTest.java
          src/test/java/jenkins/plugins/nodejs/NodeJSCommandInterpreterTest.java
          src/test/java/jenkins/plugins/nodejs/NpmrcFileSupplyTest.java
          src/test/java/jenkins/plugins/nodejs/configfiles/NPMConfigTest.java
          src/test/java/jenkins/plugins/nodejs/configfiles/NpmrcTest.java
          src/test/java/jenkins/plugins/nodejs/configfiles/RegistryHelperTest.java
          src/test/resources/jenkins/plugins/nodejs/configfiles/npmrc.config
          http://jenkins-ci.org/commit/nodejs-plugin/c1d918a2a3fb2224688aef0fe8a9426355718c5f
          Log:
          [FIX JENKINS-40364]

          Compare: https://github.com/jenkinsci/nodejs-plugin/compare/148305ef8c80...c1d918a2a3fb

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Nikolas Falco Path: pom.xml src/main/java/jenkins/plugins/nodejs/NodeJSBuildWrapper.java src/main/java/jenkins/plugins/nodejs/NodeJSCommandInterpreter.java src/main/java/jenkins/plugins/nodejs/NodeJSConstants.java src/main/java/jenkins/plugins/nodejs/NodeJSUtils.java src/main/java/jenkins/plugins/nodejs/configfiles/NPMConfig.java src/main/java/jenkins/plugins/nodejs/configfiles/NPMRegistry.java src/main/java/jenkins/plugins/nodejs/configfiles/Npmrc.java src/main/java/jenkins/plugins/nodejs/configfiles/RegistryHelper.java src/main/java/jenkins/plugins/nodejs/configfiles/VerifyConfigProviderException.java src/main/resources/jenkins/plugins/nodejs/Messages.properties src/main/resources/jenkins/plugins/nodejs/Messages_fr.properties src/main/resources/jenkins/plugins/nodejs/Messages_it.properties src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.properties src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config_it.properties src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.properties src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config_it.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/NPMConfigProvider/newInstanceDetail.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/NPMConfigProvider/newInstanceDetail.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/edit-config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMConfig/show-config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/config.properties src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/help-credentialsId.html src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/help-scopes.html src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/help-url.html src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.jelly src/main/resources/jenkins/plugins/nodejs/configfiles/NPMRegistry/show.properties src/main/resources/jenkins/plugins/nodejs/configfiles/template.npmrc src/test/java/jenkins/plugins/nodejs/NodeJSBuildWrapperTest.java src/test/java/jenkins/plugins/nodejs/NodeJSCommandInterpreterTest.java src/test/java/jenkins/plugins/nodejs/NpmrcFileSupplyTest.java src/test/java/jenkins/plugins/nodejs/configfiles/NPMConfigTest.java src/test/java/jenkins/plugins/nodejs/configfiles/NpmrcTest.java src/test/java/jenkins/plugins/nodejs/configfiles/RegistryHelperTest.java src/test/resources/jenkins/plugins/nodejs/configfiles/npmrc.config http://jenkins-ci.org/commit/nodejs-plugin/c1d918a2a3fb2224688aef0fe8a9426355718c5f Log: [FIX JENKINS-40364] Compare: https://github.com/jenkinsci/nodejs-plugin/compare/148305ef8c80...c1d918a2a3fb

          Code changed in jenkins
          User: Nikolas Falco
          Path:
          src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly
          src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly
          src/main/resources/lib/nodejs/select.jelly
          src/main/resources/lib/nodejs/taglib
          http://jenkins-ci.org/commit/nodejs-plugin/8d073ddaa1d3b34185ffdea9f2d22ad444c1438e
          Log:
          JENKINS-40364 Fix validation URL of configs combobox

          SCM/JIRA link daemon added a comment - Code changed in jenkins User: Nikolas Falco Path: src/main/resources/jenkins/plugins/nodejs/NodeJSBuildWrapper/config.jelly src/main/resources/jenkins/plugins/nodejs/NodeJSCommandInterpreter/config.jelly src/main/resources/lib/nodejs/select.jelly src/main/resources/lib/nodejs/taglib http://jenkins-ci.org/commit/nodejs-plugin/8d073ddaa1d3b34185ffdea9f2d22ad444c1438e Log: JENKINS-40364 Fix validation URL of configs combobox

          Nikolas Falco added a comment -

          Released in 1.0

          Nikolas Falco added a comment - Released in 1.0

          M Chon added a comment -

          But how do I add an alternate .npmrc? There is only one listed in the dropdown list.

          M Chon added a comment - But how do I add an alternate .npmrc? There is only one listed in the dropdown list.

          Nikolas Falco added a comment -

          In "manage jenkins" -> "Managed files"

          Have a look in the wiki page of NodeJS plugin

          Nikolas Falco added a comment - In "manage jenkins" -> "Managed files" Have a look in the wiki page of NodeJS plugin

            nfalco Nikolas Falco
            nfalco Nikolas Falco
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved: