#関連ページ
npm のバージョンが上がらない問題の解決
nodist 0.8.8 で確認
再現手順
- nodist インストール
npm install -g npm
- メッセージ的には最新の npm がインストールされる(仮に、4.4.x がインストールされたとする)
npm -v
を打つ
症状
nodist インストール時にデフォルトでインストールされた npm しか利用できない
$ npm -v 4.0.5
原因
npm コマンドで実行される C:\Program Files (x86)\Nodist\bin\npm.cmd
は、
カレントディレクトリに npm.exe が存在する場合それを利用するようになっている。
対策
C:\Program Files (x86)\Nodist\bin\npm.exe
を削除(またはリネーム)する。
上記で、nodist/bin/node_modules/npm
を利用するようになる
yarnするとどうしてもglobalに設定したnode.js versionが使用されてしまう問題
nodist 0.8.8 で確認
再現手順
- nodistをインストール
- globalで十分に古いnode versionを指定する
> nodist + 6 > nodist global 6
- angular CLIを使用する既存のangular project dirをcurrent directoryにする
- yarnする
症状
- yarnによるengine checkに引っかかって停止する(enginesでnodeのversion指定がある場合)
PS C:\Users\hogehoge\Documents\repos\centra> yarn install --silient yarn install v1.13.0 [1/5] Validating package.json... error centra@0.0.0: The engine "node" is incompatible with this module. Expected version ">= 8.12.0 <9". Got "10.15.2" error Found incompatible module info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
原因
- nodistは引数に指定したjsファイルのdirの.node-versionを参照する仕様のため、 yarn.js が配置されているdirからroot dir上にある.node-versionを参照しようとする
対策
yarn.cmd
の先頭に以下を加えることでversionを強制する@SETLOCAL for /f "usebackq tokens=*" %%i in (`node -v`) do @SET NODIST_NODE_VERSION=%%i