diff --git a/lib/manager/npm/extract/locked-versions.js b/lib/manager/npm/extract/locked-versions.js
index abf8a8747fc0e28f3fd3c184579d848067ec5b7a..e6da65290b7203e9cc5553ac4a41724556ac45ec 100644
--- a/lib/manager/npm/extract/locked-versions.js
+++ b/lib/manager/npm/extract/locked-versions.js
@@ -1,5 +1,6 @@
 const { getNpmLock } = require('./npm');
 const { getYarnLock } = require('./yarn');
+const { valid } = require('semver');
 
 module.exports = {
   getLockedVersions,
@@ -27,7 +28,7 @@ async function getLockedVersions(packageFiles) {
         lockFileCache[npmLock] = await getNpmLock(npmLock);
       }
       for (const dep of packageFile.deps) {
-        dep.lockedVersion = lockFileCache[npmLock][dep.depName];
+        dep.lockedVersion = valid(lockFileCache[npmLock][dep.depName]);
       }
     } else if (pnpmShrinkwrap) {
       logger.info('TODO: implement shrinkwrap.yaml parsing of lockVersion');