はじめに

GitHub などに登録されている Cordova アプリのソースコードをクローンした後に、クローンしたコードを使って Cordova 環境を構築(初期設定)する方法。

TL;DR

  • 既存ディレクトリをリネーム
    • mv <original name> <renamed name>
  • --template オプションを使って cordova create
    • cordova create <original name> --template=<renamed name>
  • リネームしたディレクトリを削除
    • rm -rf <renamed name>

目次

  1. はじめに
  2. TL;DR
  3. 環境・条件
  4. 詳細
    1. 問題
    2. 解決方法
  5. まとめ
  6. 参考文献

環境・条件

1
2
3
4
5
6
7
8
9
10
11
12
13
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.1
BuildVersion: 19B88

$ node -v
v12.7.0

$ npm -v
6.10.3

$ cordova -v
8.1.2 (cordova-lib@8.1.1)

詳細

問題

クローンしてきただけだと Platform が追加されていない状態だが、そもそも Cordova 環境自体が構築されていない。なので、プラットフォームを追加しようとしてもエラーになる。(cordova コマンドが通らない)

1
2
$ cordova platform add ios
Current working directory is not a Cordova-based project.

かと言って、既存コードと同じ構成で cordova create しようとすると、「もうディレクトリがある」とエラーになる。

1
2
$ cordova create src-cordova
Path already exists and is not empty: /Users/hoge/app/src-cordova

解決方法

--template オプションを使う。

参考: phonegap build - How to initialize a Cordova project using CLI if I only have the www directory of the project? - Stack Overflow

上記参考ページでは --copy-from オプションを使っているが、deprecated なので --template を使う。

いったん既存プロジェクトをリネーム。

1
$ mv src-cordova src-cordova-org

--template を指定してコピー。

1
$ cordova create src-cordova --template=src-cordova-org

cordova platform add などが動作することを確認できれば OK。

1
2
3
4
5
$ cd src-cordova
$ cordova platform add ios
Using cordova-fetch for cordova-ios@^5.0.1
...
Saving ios@~5.0.1 into config.xml file ...

コピー元は不要なので削除。

1
2
$ cd ..
$ rm -rf src-cordova-org

まとめ

  • 既存ディレクトリをリネーム
    • mv <original name> <renamed name>
  • --template オプションを使って cordova create
    • cordova create <original name> --template=<renamed name>
  • リネームしたディレクトリを削除
    • rm -rf <renamed name>

参考文献

関連記事