-
Notifications
You must be signed in to change notification settings - Fork 3
feat : 패키지 매니저 마이그레이션 #347
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,2 +1,2 @@ | ||
| npx --no -- commitlint --edit ${1} | ||
| pnpm dlx commitlint --edit ${1} | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| echo "🔍 Running lint check before push..." | ||
| npm run lint | ||
| pnpm run lint | ||
|
|
||
| echo "🔍 Running type check before push..." | ||
| npm run typecheck | ||
| pnpm run typecheck | ||
|
|
||
| echo "✅ All checks passed!" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,9 @@ | ||
| # Next.js 호환성을 위한 설정 | ||
| shamefully-hoist=true | ||
| auto-install-peers=true | ||
| strict-peer-dependencies=false | ||
|
Comment on lines
+1
to
+4
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion | 🟠 Major 🧩 Analysis chain🏁 Script executed: # Check if .npmrc exists and read its content
if [ -f .npmrc ]; then
echo "=== .npmrc content ==="
cat -n .npmrc
echo ""
else
echo ".npmrc not found"
fi
# Check for package.json to understand the project
if [ -f package.json ]; then
echo "=== package.json (first 50 lines) ==="
head -50 package.json
echo ""
fiRepository: solid-connection/solid-connect-web Length of output: 2002 🏁 Script executed: # Search for any related issues or comments about shamefully-hoist or pnpm settings
echo "=== Searching for pnpm config related comments ==="
rg -i "shamefully-hoist|auto-install-peers|strict-peer-dependencies|public-hoist" --type-list | head -20Repository: solid-connection/solid-connect-web Length of output: 535 🏁 Script executed: # Check for any build configuration files
echo "=== Checking for build/config files ==="
fd -e "next.config" -e "tsconfig" -e "babel.config" -e ".npmrc" -e "pnpm-workspace"Repository: solid-connection/solid-connect-web Length of output: 117 🏁 Script executed: # Check for pnpm-related files and search for any configuration comments
echo "=== Checking for pnpm workspace or related configs ==="
find . -maxdepth 2 -type f \( -name "pnpm-workspace.yaml" -o -name ".pnpmfile.cjs" -o -name "pnpm-lock.yaml" \) 2>/dev/null | head -10
echo ""
echo "=== Searching for peer dependency or pnpm-related issues in comments ==="
rg -i "peer.*depend|shamefully|hoist|pnpm.*config" --type ts --type tsx --type js --type json -B 1 -A 1 2>/dev/null | head -30Repository: solid-connection/solid-connect-web Length of output: 223 🏁 Script executed: # Check if there are any build errors or warnings documented
echo "=== Looking for any related documentation or issues ==="
find . -maxdepth 2 -type f \( -name "README.md" -o -name "CONTRIBUTING.md" -o -name ".github" \) 2>/dev/null | head -10
# Search in README if it exists
if [ -f README.md ]; then
echo ""
echo "=== Checking README for pnpm/Next.js setup info ==="
rg -i "pnpm|install|setup|next" README.md -A 2 | head -40
fiRepository: solid-connection/solid-connect-web Length of output: 606 🌐 Web query:
💡 Result: Short answer: avoid shamefully-hoist=true for Next.js workspaces unless you must — prefer targeted hoisting (publicHoistPattern / hoistPattern) or fixing dependency declarations. Use shamefully-hoist only as a last-resort compatibility fallback. Why:
Best practices
If you want, I can:
Citations:
pnpm 설정의 엄격함을 약화시키는 옵션들을 검토하고 개선해주세요. 현재
🤖 Prompt for AI Agents |
||
|
|
||
| # 기본 설정 | ||
| registry=https://registry.npmjs.org/ | ||
| enable-pre-post-scripts=true | ||
| lockfile=true | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
pnpm dlx vs npx --no behavior commitlint💡 Result:
Short answer: they’re different.
npx --no (aka --no-install) prevents npx from downloading a package; it only runs an existing local/global binary and will fail instead of installing. This is what commitlint docs use in husky hooks to avoid prompting to install. [1][3]
pnpm dlx always fetches a package temporarily from the registry and runs it (does not add it to package.json). It’s the pnpm equivalent of npx for one‑off remote execution. It does not implement an npx‑style “no‑install” that refuses to download. [2]
Practical guidance for commitlint + Husky:
Sources:
[1] npx docs (npm) — npx options and --no/--no-install behavior.
[2] pnpm dlx docs — dlx fetches and runs packages temporarily.
[3] commitlint local setup (Husky example uses "npx --no -- commitlint --edit $1").
🌐 Web query:
pnpm dlx automatic install prompt behavior missing package💡 Result:
Short answer: pnpm dlx does not "automatically install" a package into your project — it fetches the requested package temporarily from the registry and runs it. If the package cannot be resolved (not published, private/unreachable, or blocked by policy like minimumReleaseAge), dlx will fail with an error (or with the same resolution behavior as normal pnpm commands) rather than silently installing something different. There are related pnpm settings that control prompts and automatic installs for other commands (e.g., verify-deps-before-run), and there are known edge-case bugs (e.g., minimumReleaseAge interactions) discussed in the pnpm issue tracker. See pnpm dlx docs and related GitHub issues for details. [1][2][3]
Sources:
🌐 Web query:
npx --no flag purpose prevent install prompt💡 Result:
--no tells npx to answer the interactive "Ok to proceed?" prompt with "no" (i.e., refuse installing missing packages), so it prevents npx from prompting to download/install and causes the run to fail if the command isn’t already available. It’s the replacement for the older --no-install behavior. [1][2]
pnpm dlx에서pnpm exec로 변경하세요.npx --no에서pnpm dlx로의 전환은 기능적으로 다릅니다. 다음을 확인해주세요:npx --no의 역할: 원격 패키지 설치를 거부하고 로컬에 있는 패키지만 실행합니다. 패키지가 없으면 실행이 실패합니다.pnpm dlx의 동작: 항상 레지스트리에서 패키지를 임시로 다운로드하여 실행합니다.--no같은 플래그로 다운로드를 거부할 수 없습니다.올바른 대체 방법: commitlint가 devDependency로 설치되어 있다면
pnpm exec commitlint --edit ${1}을 사용하세요. 이것이npx --no동작과 동등합니다.현재 코드는 의도하지 않은 동작 변경을 포함하고 있습니다.
🤖 Prompt for AI Agents