Windowsのパソコンでコンピュータ名を日本語にしている場合「npm」コマンドが使用できないことがある

※コマンドプロンプト自体が「Shift-JIS」の為、日本語が文字化けが起こりコマンドエラーとなる

 

対応策としては下記の処理を行えばコマンドが使用できるようになる。

※ファイルの中身を変更する為、必ずファイルのコピーは取っておくように!!

 

/**
 *    Node.js
 *    ※コンピュータ名に日本語が含まれている場合は下記の処理を行わないといけない
 **/
①C:\Program Files\nodejs\node_modules\npm\npmrc(←ファイル名)

    prefix=${APPDATA}\npm

        ↓に変更↓

    prefix=C:\Program Files\nodejs\node_modules\npm\npm


    環境変数「Path」に下記の内容を追加
    C:\Program Files\nodejs\node_modules\npm\npm


/* ▼エラー内容 */

Error: Failed to replace env in config: ${APPDATA}
    at C:\Users\コンピュータ名\AppData\Roaming\nvm\v6.10.0\node_modules\npm\lib\config\core.js:418:13
    at RegExp.[Symbol.replace] (native)
    at RegExp.[Symbol.replace] (native)
    at String.replace (native)
    at envReplace (C:\Users\コンピュータ名\AppData\Roaming\nvm\v6.10.0\node_modules\npm\lib\config\core.js:414:12)
    at parseField (C:\Users\コンピュータ名\AppData\Roaming\nvm\v6.10.0\node_modules\npm\lib\config\core.js:392:7)
    at C:\Users\コンピュータ名\AppData\Roaming\nvm\v6.10.0\node_modules\npm\lib\config\core.js:335:17
    at Array.forEach (native)
    at Conf.add (C:\Users\コンピュータ名\AppData\Roaming\nvm\v6.10.0\node_modules\npm\lib\config\core.js:334:23)
    at ConfigChain.addString (C:\Users\コンピュータ名\AppData\Roaming\nvm\v6.10.0\node_modules\npm\node_modules\config-chain\index.js:244:8)



②上記の処理でも直らない場合

下記ファイルに一部追記する必要がある
C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp\easy_xml.py


  # It has changed, write it
  if existing != xml_string:
    f = open(path, 'w')
/* ▼追記文 */
    try:
      xml_string = xml_string.encode(encoding)
    except Exception:
      xml_string = unicode(xml_string, 'shift_jis').encode(encoding)
/* 追記文終了 */
    f.write(xml_string)
    f.close()