React.jsを使用してフロントエンドの勉強をしようと思ってReactを導入するべくCreate-React-Appを実行したところエラーが発生し、初手から出鼻を挫かれてSAN値を削られたのですがその原因はどうやらPCのユーザー名に入れてしまっていた半角スペースでした
npx create-react-appを実行して以下のエラーが発生
"Error: EPERM: operation not permitted, mkdir 'C:\Users\〇〇 ' command not found: create-react-app"
PCのユーザー名の(というか開発全般において)半角スペースは開発に支障を来たしうるから避けるというのは開発者的には知ってて当たり前の知識だと思いますが、Windowsの初期設定をしている当時の自分はPCを買ってウキウキだったというのもあってかなんとミドルネームまで入れるというとってもややこしいことをしていました
PCのユーザー名に半角スペースが二つも入ってる人はそうはいないと思いますが、もし私と同じような愚かな過ちを犯して今現在も苦しんでいる人はこの知識を知っておきましょう
「PCのユーザー名には"エイリアス"が使用できます!」
さて半角スペースをユーザ名に入れてしまう自分のような人間はおそらくエイリアスという単語を聞いてもいまいちピンと来ないはずなので解説しておきますが、エイリアスとは別名とかあだ名とかいう意味です
コンピュータを扱う上でプログラムを実行するときなどにユーザー名などの変数名を入力する機会が往々にしてあると思いますが、ユーザー名に本名が含まれていてなるべく入力したくないケースがあったとします
こういったときにエイリアスというものを利用すると本名を入力したのと同じ扱いをしてもらえます
エイリアスとは要は別称を利用できるということです
さて話を元に戻しますが、エイリアスが使えると半角スペースの問題をクリアすることができます
というのも半角スペースを含めないエイリアス名を作ればよいからです
このようにエイリアスを使用すると半角スペースを使ったややこしいユーザー名を回避することができます
エイリアス名の作り方1
さて肝心のエイリアス名の作り方ですが、Windows OSのPCユーザー名に関しては命名ルールがあり以下の規則になっています
「FirstName[半角スペース]LastName」=「FirstName~1」
「半角スペース手前の名称」に「~1」を加えるとそれがエイリアス名になります
例えばPCのユーザー名を「Kosei Daiki」にしていた場合は、「Kosei~1」がエイリアス名になります
エイリアス名の作り方2
さて、上記の作成で全員が救われるのか......というとそうではないです
上記のエイリアス名で救われない人がいます
そうです、ミドルネームをつけてしまった人です(涙)
なんと上記の方法ではユーザー名に半角スペースが複数ある場合に非対応となっています
しかしあきらめないでください
道は残されています(涙目)
おそらくまさしくミドルネームなどの救済措置なんだと思いますが、半角スペースを複数含む場合のエイリアス名は以下の命名規則になっています
「FirstName[半角スペース]MiddleName[半角スペース]LastName」=「FIRSTN~1」
「One[半角スペース]Second[半角スペース]Third」=「ONESEC~1」
「全体のユーザー名の初めの6文字」に「~1」を加えるとエイリアス名になります
これが少しややこしくて、半角スペースをまたいで6文字であることに注意が必要です
例:
ユーザー名: Tim va Jiro
エイリアス名: TIMVAJ~1
全体で6文字もないユーザー名はどうやるかは知りません
というかミドルネーム含めてそんな名前を作れるんですかね
常識的に「Ad Bf C」みたいな名前作らないと思うので考えないことにします
エラーの回避方法
さて、エイリアス名の命名方法はわかりましたがエラーをどうやって回避するかはその時々のケースによって違います
ググって調べるしかないです.....
Create-React-Appのユーザー名のエラーの場合は以下のコマンドを入力することで回避できました
npm config set cache "C:\Users[エイリアス名]\AppData\Roaming\npm-cache" --global
パスが通っていないことが原因のようだったのでパスが通るように設定しています
ちなみにPCユーザーの半角エラーで一番頻繁に起こるものは、コマンドラインでファイルなど何らかのフルPathを通す場合にユーザー名の半角スペースがコマンドの意味の区切りとして勘違いされてエラーが起こるケースだと思います
例えばこういうものは半角スペースが引数の切れ目だと勘違いされてエラーが出るはずです
cd C:\Users\FirstName LastName
こういう場合はダブルクォーテーションで回避することもできます
cd "C:\Users\FirstName LastName"
これなら通るはずです
終わりに
次にPCを買ったときはユーザー名には半角スペースを絶対に入れない