SocketDev / SocketDev/socket-cli
socket npm cannot execute npm installed via mise
オープン
まだ誰も着手していません。
bug
- 主要言語
- TypeScript
- スター
- 317
- フォーク
- 65
- 平均マージ
- 1時間 26分
- マージ済み PR(30日)
- 30
説明
mise puts node and npm file pointing like ~/.local/share/mise/installs/node/22.21.1/bin/npm
which is a shell script :(
#!/usr/bin/env bash
set -euo pipefail
# This script wraps npm so to run `mise reshim` after global installs and uninstalls
# Any other cases are passed-through to npm
this_dir=$(dirname "${BASH_SOURCE[0]}")
plugin_name=$(basename "$(dirname "$this_dir")")
this_dir=$(cd "$this_dir" && pwd -P) # Normalizes the directory
...
So socket npm fails because it isn't a node script.
$ socket npm i
_____ _ _ /---------------
| __|___ ___| |_ ___| |_ | CLI: v1.1.38
|__ | . | _| '_| -_| _| | token: (not set), org: (not set)
|_____|___|___|_,_|___|_|.dev | Command: `socket npm`, cwd: **
/Users/kesoji/.local/share/mise/installs/node/22.21.1/bin/npm:2
set -euo pipefail
^^^^^^^^
SyntaxError: Unexpected identifier 'pipefail'
at wrapSafe (node:internal/modules/cjs/loader:1638:18)
at Module._compile (node:internal/modules/cjs/loader:1680:20)
at Object..js (node:internal/modules/cjs/loader:1839:10)
at Module.load (node:internal/modules/cjs/loader:1441:32)
at Function._load (node:internal/modules/cjs/loader:1263:12)
at TracingChannel.traceSync (node:diagnostics_channel:328:14)
at wrapModuleLoad (node:internal/modules/cjs/loader:237:24)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:171:5)
at node:internal/main/run_main_module:36:49
Node.js v22.21.1
Is there any solution or workaround?
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
socket npm コマンドのエントリポイントから開始し、mise が生成した ~/.local/share/mise/installs/node/22.21.1/bin/npm wrapper で失敗を再現します。CLI が要求された実行可能ファイルをどのように起動するかを追跡し、続いて、shell スクリプト形式の npm wrapper が、Node に JavaScript として解析されることなく処理されることを確認します。issue ではリポジトリ内のファイルもテストも指定されていないため、完了時にはこの呼び出しに対する回帰チェックを含める必要があります。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- node.js, typescript
- 領域
- cli, tooling
- issue の種類
- バグ
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 活発さ
- 静か
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 48/100