-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscan-v12.sh
More file actions
58 lines (49 loc) · 1.73 KB
/
Copy pathscan-v12.sh
File metadata and controls
58 lines (49 loc) · 1.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
# npm v12 Migration Scanner
# Usage: ./scan-v12.sh [project-path]
# Defaults to current directory.
set -euo pipefail
DIR="${1:-.}"
cd "$DIR"
echo "=== npm v12 Migration Scan ==="
echo "Project: $(pwd)"
echo ""
# 1. Check npm version
NPM_VER=$(npm --version 2>/dev/null || echo "unknown")
echo "[1/6] npm version: $NPM_VER"
if command -v node &>/dev/null; then
echo " Node: $(node --version)"
fi
echo ""
# 2. Find native dependencies (those with node-gyp / binding.gyp)
echo "[2/6] Native dependencies (will need script approval):"
if [ -f package-lock.json ]; then
grep -oP '"node_modules/\K[^"]+(?=".*binding\.gyp)' package-lock.json 2>/dev/null | sort -u | while read pkg; do
echo " ⚠ $pkg"
done
fi
echo " → After upgrade, run: npm approve-scripts --allow-scripts-pending"
echo ""
# 3. Find Git dependencies
echo "[3/6] Git dependencies (will be blocked):"
grep -n "git+" package.json 2>/dev/null || echo " ✓ None found"
echo " → Fix: npm install --allow-git OR echo 'allow-git=true' >> .npmrc"
echo ""
# 4. Find remote URL deps
echo "[4/6] Remote URL dependencies (will be blocked):"
grep -n "https://.*\.tgz" package.json 2>/dev/null || echo " ✓ None found"
echo ""
# 5. Check for npm-shrinkwrap.json
echo "[5/6] npm-shrinkwrap.json check:"
if [ -f npm-shrinkwrap.json ]; then
echo " ⚠ FOUND — rename to package-lock.json: mv npm-shrinkwrap.json package-lock.json"
else
echo " ✓ Not found"
fi
echo ""
# 6. Find npm view --json usage in CI/scripts
echo "[6/6] npm view --json usage (will need array handling):"
grep -rn "npm view.*--json" . 2>/dev/null | grep -v node_modules | grep -v .git || echo " ✓ None found"
echo ""
echo "=== Scan complete ==="
echo "Full migration guide: https://npmv12guide.com"