[BUG] npm outdated fails to parse aliases
ruyadorno opened this issue · comments
Current Behavior:
Running npm outdated
on a folder that contains a package.json
using aliases (e.g: npm install <alias>@npm:<name>
), see: https://docs.npmjs.com/cli/v7/commands/npm-install
Expected Behavior:
npm outdated
should work.
Steps To Reproduce:
Given a package.json using aliases:
commit 8bda27aed14024a3d15f1802c04c13ddda706e02 (HEAD -> main)
Author: Ruy Adorno <ruyadorno@hotmail.com>
Date: Mon Mar 1 10:54:40 2021 -0500
Initial commit
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..733811a
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,27 @@
+{
+ "name": "test-outdated-alias",
+ "version": "1.0.0",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "version": "1.0.0",
+ "dependencies": {
+ "foo": "npm:abbrev@^1.1.1"
+ }
+ },
+ "node_modules/foo": {
+ "name": "abbrev",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ }
+ },
+ "dependencies": {
+ "foo": {
+ "version": "npm:abbrev@1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
+ }
+ }
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..b10a0f9
--- /dev/null
+++ b/package.json
@@ -0,0 +1,7 @@
+{
+ "name": "test-outdated-alias",
+ "version": "1.0.0",
+ "dependencies": {
+ "foo": "npm:abbrev@^1.1.1"
+ }
+}
Run outdated
$ npm outdated --loglevel=silly
npm verb cli [
npm verb cli '/Users/ruyadorno/Documents/ruyadorno/nodejs/out/Release/node',
npm verb cli '/Users/ruyadorno/Documents/workspace/cli/main',
npm verb cli 'outdated',
npm verb cli '--loglevel=silly'
npm verb cli ]
npm info using npm@7.6.0
npm info using node@v16.0.0-pre
npm timing config:load:defaults Completed in 1ms
npm timing config:load:file:/Users/ruyadorno/Documents/workspace/cli/main/npmrc Completed in 0ms
npm timing config:load:builtin Completed in 0ms
npm timing config:load:cli Completed in 2ms
npm timing config:load:env Completed in 0ms
npm timing config:load:file:/Users/ruyadorno/tmp/test-outdated-alias/.npmrc Completed in 0ms
npm timing config:load:project Completed in 0ms
npm timing config:load:file:/Users/ruyadorno/.npmrc Completed in 1ms
npm timing config:load:user Completed in 1ms
npm timing config:load:file:/Users/ruyadorno/npm-prefix/etc/npmrc Completed in 0ms
npm timing config:load:global Completed in 1ms
npm timing config:load:cafile Completed in 0ms
npm timing config:load:validate Completed in 1ms
npm timing config:load:setUserAgent Completed in 0ms
npm timing config:load:setEnvs Completed in 1ms
npm timing config:load Completed in 7ms
npm verb npm-session f9afbefed03f194d
npm timing npm:load Completed in 16ms
npm timing arborist:ctor Completed in 1ms
npm timing arborist:ctor Completed in 1ms
npm http fetch GET 304 https://registry.npmjs.org/foo 548ms (from cache)
npm timing command:outdated Completed in 569ms
npm verb stack Error: Only tag, version, and range are supported
npm verb stack at pickManifest (/Users/ruyadorno/Documents/workspace/cli/main/node_modules/npm-pick-manifest/index.js:92:11)
npm verb stack at module.exports (/Users/ruyadorno/Documents/workspace/cli/main/node_modules/npm-pick-manifest/index.js:186:18)
npm verb stack at getOutdatedInfo (/Users/ruyadorno/Documents/workspace/cli/main/lib/outdated.js:148:22)
npm verb stack at processTicksAndRejections (node:internal/process/task_queues:94:5)
npm verb stack at async Promise.all (index 0)
npm verb stack at async outdated_ (/Users/ruyadorno/Documents/workspace/cli/main/lib/outdated.js:200:3)
npm verb stack at async outdated (/Users/ruyadorno/Documents/workspace/cli/main/lib/outdated.js:40:16)
npm verb cwd /Users/ruyadorno/tmp/test-outdated-alias
npm verb Darwin 19.6.0
npm verb argv "/Users/ruyadorno/Documents/ruyadorno/nodejs/out/Release/node" "/Users/ruyadorno/Documents/workspace/cli/main" "outdated" "--loglevel=silly"
npm verb node v16.0.0-pre
npm verb npm v7.6.0
npm ERR! Only tag, version, and range are supported
npm verb exit 1
npm timing npm Completed in 754ms
npm verb code 1
I am also getting this issue. For me the issue was caused by this dependency:
"gsap": "npm:@gsap/shockingly@^3.6.0",
It needs to be installed with an alias to take advantage of the paid features of the shockingly
version.
This is in a public repo of mine.
Additional Info
Windows 10
npm 7.6.0
node v12.18.4
git version 2.30.1.windows.1
C:\Users\Chris\Sync\PythonProjects\chriskumm.com\chriskumm.com_gatsby\src>npm outdated --all
npm ERR! Only tag, version, and range are supported
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Chris\AppData\Local\npm-cache\_logs\2021-03-03T10_34_30_128Z-debug.log
2021-03-03T10_34_30_128Z-debug.log:
0 verbose cli [
0 verbose cli 'C:\\Program Files\\nodejs\\node.exe',
0 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
0 verbose cli 'outdated',
0 verbose cli '--all'
0 verbose cli ]
1 info using npm@7.6.0
2 info using node@v12.18.4
3 timing config:load:defaults Completed in 1ms
4 timing config:load:file:C:\Program Files\nodejs\node_modules\npm\npmrc Completed in 2ms
5 timing config:load:builtin Completed in 2ms
6 timing config:load:cli Completed in 1ms
7 timing config:load:env Completed in 1ms
8 timing config:load:file:C:\Users\Chris\Sync\PythonProjects\chriskumm.com\chriskumm.com_gatsby\.npmrc Completed in 0ms
9 timing config:load:project Completed in 1ms
10 timing config:load:file:C:\Users\Chris\.npmrc Completed in 1ms
11 timing config:load:user Completed in 1ms
12 timing config:load:file:C:\Users\Chris\AppData\Roaming\npm\etc\npmrc Completed in 0ms
13 timing config:load:global Completed in 0ms
14 timing config:load:cafile Completed in 0ms
15 timing config:load:validate Completed in 1ms
16 timing config:load:setUserAgent Completed in 1ms
17 timing config:load:setEnvs Completed in 0ms
18 timing config:load Completed in 9ms
19 verbose npm-session 78ae70b18b9b75fe
20 timing npm:load Completed in 19ms
21 timing arborist:ctor Completed in 0ms
22 timing arborist:ctor Completed in 0ms
23 http fetch GET 304 https://registry.npmjs.org/gatsby-plugin-postcss 10885ms (from cache)
24 http fetch GET 304 https://registry.npmjs.org/autoprefixer 10900ms (from cache)
25 http fetch GET 304 https://registry.npmjs.org/gatsby-image 10898ms (from cache)
26 http fetch GET 304 https://registry.npmjs.org/dotenv 10916ms (from cache)
27 http fetch GET 304 https://registry.npmjs.org/gatsby-plugin-robots-txt 10907ms (from cache)
28 http fetch GET 304 https://registry.npmjs.org/gatsby-plugin-sharp 10918ms (from cache)
29 http fetch GET 304 https://registry.npmjs.org/gatsby-background-image 10949ms (from cache)
30 http fetch GET 304 https://registry.npmjs.org/gatsby-plugin-remove-serviceworker 10976ms (from cache)
31 http fetch GET 304 https://registry.npmjs.org/prettier 11001ms (from cache)
32 http fetch GET 304 https://registry.npmjs.org/gsap 11019ms (from cache)
33 timing command:outdated Completed in 12241ms
34 verbose stack Error: Only tag, version, and range are supported
34 verbose stack at pickManifest (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-pick-manifest\index.js:92:11)
34 verbose stack at module.exports (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-pick-manifest\index.js:186:18)
34 verbose stack at getOutdatedInfo (C:\Program Files\nodejs\node_modules\npm\lib\outdated.js:148:22)
34 verbose stack at async Promise.all (index 16)
34 verbose stack at async outdated_ (C:\Program Files\nodejs\node_modules\npm\lib\outdated.js:200:3)
34 verbose stack at async outdated (C:\Program Files\nodejs\node_modules\npm\lib\outdated.js:40:16)
35 verbose cwd C:\Users\Chris\Sync\PythonProjects\chriskumm.com\chriskumm.com_gatsby\src
36 verbose Windows_NT 10.0.19042
37 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "outdated" "--all"
38 verbose node v12.18.4
39 verbose npm v7.6.0
40 error Only tag, version, and range are supported
41 verbose exit 1
This also crops up with Tailwind's instructions for using it with Create-React-App, which are based on an alias as well: https://tailwindcss.com/docs/guides/create-react-app
npm install -D tailwindcss@npm:@tailwindcss/postcss7-compat
This happens to me as well. I had to change from using the official eslint-plugin-prettier
due to a bug.
I have temporarily switched to another version in an open PR by changing to this line: "eslint-plugin-prettier": "npm:@rxts/eslint-plugin-prettier@^3.4.0-1",
.
This makes npm outdated
fail with this error:
Error while gathering outdated dependencies:
stack Error: Command failed: npm outdated --json --long --save false
stack npm ERR! Only tag, version, and range are supported
stack {
stack "error": {
stack "code": null,
stack "summary": "Only tag, version, and range are supported",
stack "detail": ""
stack }
stack }
stack
stack npm ERR! A complete log of this run can be found in:
stack npm ERR! /Users/andreasolsson/.npm/_logs/2021-03-25T08_18_12_288Z-debug.log
stack
stack at ChildProcess.exithandler (node:child_process:333:12)
stack at ChildProcess.emit (node:events:376:20)
stack at maybeClose (node:internal/child_process:1063:16)
stack at Process.ChildProcess._handle.onexit (node:internal/child_process:295:5)
message Command failed: npm outdated --json --long --save false
message npm ERR! Only tag, version, and range are supported
message {
message "error": {
message "code": null,
message "summary": "Only tag, version, and range are supported",
message "detail": ""
message }
message }
message
message npm ERR! A complete log of this run can be found in:
message npm ERR! /Users/andreasolsson/.npm/_logs/2021-03-25T08_18_12_288Z-debug.log
message
killed false
code 1
signal null
cmd npm outdated --json --long --save false
This is a pretty bad issue, since we run npm outdated
as part of our CI. We have to remove that step from our CI now.
I was having this issue with my Gatsby build. I found this issue, specifically this comment which helped me solve.
Initially when I had updated TailwindCSS to v.2 I had a pesky error, and the work around was to install a PostCSS7 compatibility build (see this doc).
I ran
npm uninstall tailwindcss @tailwindcss/postcss7-compat
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest
which then allowed me to run npm outdated
without returning the error npm ERR! Only tag, version, and range are supported
.
The above removed the following code from my package.json
file, which for some reason was triggering the error
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.3",
Now I can continue with the update of Gatsby to v3+
Any updates/estimation for this issue?
This is a pretty big bug, surprised it takes so long for it to be fixed
Just ran into the same issue trying to to migrate to Nuxt3, granted it came out pretty much this week.
OS: macOS Big Sur 11.6 (20G165)
npm: 8.0.0
node: v14.18.1
package.json
"devDependencies": {
"@babel/plugin-proposal-optional-chaining": "^7.12.7",
"@nuxt/bridge": "npm:@nuxt/bridge-edge@^3.0.0-27235989.d52b1e8",
...
}
➜ npm outdated
npm ERR! Only tag, version, and range are supported
npm ERR! A complete log of this run can be found in:
npm ERR! /Users/vladimir/.npm/_logs/2021-10-14T11_20_08_839Z-debug.log
Log file content:
0 verbose cli [
0 verbose cli '/Users/vladimir/.nvm/versions/node/v14.18.1/bin/node',
0 verbose cli '/Users/vladimir/.nvm/versions/node/v14.18.1/bin/npm',
0 verbose cli 'outdated'
0 verbose cli ]
1 info using npm@8.0.0
2 info using node@v14.18.1
3 timing npm:load:whichnode Completed in 0ms
4 timing config:load:defaults Completed in 2ms
5 timing config:load:file:/Users/vladimir/.nvm/versions/node/v14.18.1/lib/node_modules/npm/npmrc Completed in 13ms
6 timing config:load:builtin Completed in 13ms
7 timing config:load:cli Completed in 2ms
8 timing config:load:env Completed in 0ms
9 timing config:load:file:/Users/vladimir/Dev_Projects/Proxify/Spixler/spixler-india/domains/indiagamblers.com/.npmrc Completed in 0ms
10 timing config:load:project Completed in 1ms
11 timing config:load:file:/Users/vladimir/.npmrc Completed in 1ms
12 timing config:load:user Completed in 1ms
13 timing config:load:file:/Users/vladimir/.nvm/versions/node/v14.18.1/etc/npmrc Completed in 1ms
14 timing config:load:global Completed in 1ms
15 timing config:load:validate Completed in 0ms
16 timing config:load:credentials Completed in 1ms
17 timing config:load:setEnvs Completed in 1ms
18 timing config:load Completed in 22ms
19 timing npm:load:configload Completed in 22ms
20 timing npm:load:setTitle Completed in 24ms
21 timing npm:load:setupLog Completed in 0ms
22 timing config:load:flatten Completed in 3ms
23 timing npm:load:cleanupLog Completed in 3ms
24 timing npm:load:configScope Completed in 0ms
25 timing npm:load:projectScope Completed in 1ms
26 timing npm:load Completed in 54ms
27 timing arborist:ctor Completed in 1ms
28 timing arborist:ctor Completed in 0ms
29 timing command:outdated Completed in 7645ms
30 verbose stack Error: Only tag, version, and range are supported
30 verbose stack at pickManifest (/Users/vladimir/.nvm/versions/node/v14.18.1/lib/node_modules/npm/node_modules/npm-pick-manifest/index.js:93:11)
30 verbose stack at module.exports (/Users/vladimir/.nvm/versions/node/v14.18.1/lib/node_modules/npm/node_modules/npm-pick-manifest/index.js:187:16)
30 verbose stack at Outdated.getOutdatedInfo (/Users/vladimir/.nvm/versions/node/v14.18.1/lib/node_modules/npm/lib/outdated.js:228:22)
30 verbose stack at async Promise.all (index 30)
30 verbose stack at async Outdated.outdated (/Users/vladimir/.nvm/versions/node/v14.18.1/lib/node_modules/npm/lib/outdated.js:84:5)
31 verbose cwd /Users/vladimir/Dev_Projects/Proxify/Spixler/spixler-india/domains/indiagamblers.com
32 verbose Darwin 20.6.0
33 verbose argv "/Users/vladimir/.nvm/versions/node/v14.18.1/bin/node" "/Users/vladimir/.nvm/versions/node/v14.18.1/bin/npm" "outdated"
34 verbose node v14.18.1
35 verbose npm v8.0.0
36 error Only tag, version, and range are supported
37 verbose exit 1
I've been having to work around this issue for like a year now. Looking forward to a solution.
This issue is present in v7.x as well as v8.x.
The above removed the following code from my
package.json
file, which for some reason was triggering the error"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.3",
Now I can continue with the update of Gatsby to v3+
For my case, I had to switch back to the compat version of postcss after updating outdated packages.
Eagerly waiting for a fix.
Also experiencing this issue with docsify.js. Running npm outdated
fails due to the following dependencies in package.json
:
Also eagerly waiting for a fix. Thx!
also facing the same problem with
"tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.2.17",
used in ionic 5
@ruyadorno Does this issue also address #2884 and #4197 so that npm install
is able to resolve aliases? Or it just fixes npm outdated
specifically?