はじめに
普通にnpmでグローバルにcordovaを入れてしまうと、一つのバージョンのcordovaしか使えません。
そこで、複数のバージョンcordovaを使いたい場合の方法をまとめました
Mac/Linuxの場合
MacやLinuxでは、適当なディレクトリにcordovaをローカルとしてインストールし、インストールされたnode_modules/.bin/cordovaを呼び出せば、そのバージョンのcordovaを実行できます。
例えば、cordova 8.0.0を入れたいなら、適当なディレクトリ(ここではapp dirとします)を作成して
$ cd [app dir]
$ npm install cordova@8.0.0
そして、適当にパスの有効なディレクトリからシンボリックリンクを貼れば
$ cd [pathの有効なdir]
$ ln -s [app dir]/node_modules/.bin/cordova cordova80
以後は、cordova80
で、cordova 8.0.0が使えるようになります。
Windowsの場合
まず、適当な作業ディレクトリにcordovaをインストールするところまでは、Mac/Linuxと同じでOKです。
> cd [app dir]
> npm install cordova@8.0.0
次に、pathの有効なディレクトリに cordova80.cmd
ファイルを作成します。
その中身は、次のようになります。
node "[app dir]\node_modules\cordova\bin\cordova" %*
[app dir]のところは、cordova 8.0.0をインストールしたディレクトリを指します。私の場合であれば、次のようになりました。
node "C:\Users\knaito\Documents\App\cordova\cordova80\node_modules\cordova\bin\cordova" %*
これで、以後は cordova80
で、 cordova 8.0.0を呼び出すことができます。
node_modules\.bin\cordova
ではなく、 node_modules\cordova\bin\cordova
を呼び出しています。あまり深く調べた訳ではないのですが、これでうまくいっているようなので、このまま使っています。