diff --git a/lib/manager/npm/post-update/index.js b/lib/manager/npm/post-update/index.js
index 929ecd59afb99b89a88affb9fe1c8ec02abef176..d2d409c25a638d93718ce64a233fd3265c343cfc 100644
--- a/lib/manager/npm/post-update/index.js
+++ b/lib/manager/npm/post-update/index.js
@@ -169,12 +169,11 @@ async function writeExistingFiles(config, packageFiles) {
         );
       }
     }
-    if (packageFile.npmrc) {
-      logger.debug(`Writing .npmrc to ${basedir}`);
-      await fs.outputFile(upath.join(basedir, '.npmrc'), packageFile.npmrc);
-    } else if (config.npmrc) {
-      logger.debug('Writing repo .npmrc to package file dir');
-      await fs.outputFile(upath.join(basedir, '.npmrc'), config.npmrc);
+    const npmrc = packageFile.npmrc || config.npmrc;
+    if (npmrc.includes('=${' && !config.global.exposeEnv)) {
+      logger.info('Skipping .npmrc as it contains variables');
+    } else {
+      await fs.outputFile(upath.join(basedir, '.npmrc'), npmrc);
     }
     if (packageFile.yarnrc) {
       logger.debug(`Writing .yarnrc to ${basedir}`);