diff --git a/lib/datasource/npm.js b/lib/datasource/npm.js
index 609351de2e9b43c985632f11d3170fd6bf192ca0..402e39ca1e70af9dcdddb226a595ce6e7b3504a6 100644
--- a/lib/datasource/npm.js
+++ b/lib/datasource/npm.js
@@ -23,6 +23,7 @@ let map = new Map();
 let memcache = {};
 
 let npmrc = null;
+let npmrcRaw;
 
 function resetMemCache() {
   logger.debug('resetMemCache()');
@@ -47,6 +48,10 @@ function maskToken(token) {
 
 function setNpmrc(input, exposeEnv = false) {
   if (input) {
+    if (input === npmrcRaw) {
+      return;
+    }
+    npmrcRaw = input;
     logger.debug('Setting npmrc');
     npmrc = ini.parse(input);
     // massage _auth to _authToken
diff --git a/test/datasource/npm.spec.js b/test/datasource/npm.spec.js
index 58a271093bb6c9190ede11f944634ce920e38eef..30ff7f3156beffa2ba5579728075be2188c1ce0b 100644
--- a/test/datasource/npm.spec.js
+++ b/test/datasource/npm.spec.js
@@ -203,6 +203,7 @@ describe('api/npm', () => {
     expect(res).toMatchSnapshot();
   });
   it('resets npmrc', () => {
+    npm.setNpmrc('something=something');
     npm.setNpmrc('something=something');
     npm.setNpmrc();
   });