diff --git a/lib/manager/npm/post-update/index.js b/lib/manager/npm/post-update/index.js
index 0700d2aba1634428f275cdb30f2bb6f5b576bde1..1594cd58556918743e737d9fc4d0fedc337d204e 100644
--- a/lib/manager/npm/post-update/index.js
+++ b/lib/manager/npm/post-update/index.js
@@ -170,15 +170,12 @@ async function writeExistingFiles(config, packageFiles) {
       }
     }
     let { npmrc } = config;
-    if (!config.ignoreNpmrc) {
+    if (packageFile.npmrc && !config.ignoreNpmrc) {
+      logger.debug('Using package.json .npmrc');
       npmrc = npmrc || packageFile.npmrc;
     }
     if (npmrc) {
-      if (npmrc.includes('=${' && !config.global.exposeEnv)) {
-        logger.info('Skipping .npmrc as it contains variables');
-      } else {
-        await fs.outputFile(upath.join(basedir, '.npmrc'), npmrc);
-      }
+      await fs.outputFile(upath.join(basedir, '.npmrc'), npmrc);
     }
     if (packageFile.yarnrc) {
       logger.debug(`Writing .yarnrc to ${basedir}`);
diff --git a/lib/workers/repository/init/config.js b/lib/workers/repository/init/config.js
index 839ae0a1b5b46e23403753ee8811798c9381f68b..432a392992ba3113d2651b1b312ab2dda3eef623 100644
--- a/lib/workers/repository/init/config.js
+++ b/lib/workers/repository/init/config.js
@@ -21,7 +21,7 @@ async function mergeRenovateConfig(config) {
     logger.debug({ renovateJson }, 'mirrorMode config');
     const migratedConfig = await migrateAndValidate(config, renovateJson);
     const resolvedConfig = await presets.resolveConfigPresets(migratedConfig);
-    if (resolvedConfig.npmrc && resolvedConfig.ignoreNpmrc !== false) {
+    if (resolvedConfig.npmrc) {
       resolvedConfig.ignoreNpmrc = true;
     }
     returnConfig = mergeChildConfig(returnConfig, resolvedConfig);