Cordova 5.0.0 : 어떤 파일을 git에 커밋해야합니까?


89

Cordova 5.0.0을 사용하고 있으며 다음과 같은 프로젝트 구조가 있습니다.

MyProject
    - hooks
    - platforms
    - plugins
    - resources
    - www
    - config.xml

이제 내 질문은 다음 중 어느 폴더를 생략 할 수 있습니까? 세 가지 다른 플랫폼에서 작업하기 때문에 묻습니다. Android 용 Linux, Windows Phone 용 Windows 및 iOS 용 Mac에서 개발합니다. 전체 프로젝트를 커밋하면 지원되지 않는 플랫폼에 대한 경고와 오류가 항상 표시됩니다.

내가 원하는 것은 최소한의 git 저장소입니다.

예를 들어 한 가지 문제는 플러그인입니다. 저장소에서 플러그인 폴더를 삭제하면 각 개발 플랫폼에 수동으로 추가해야합니다.

또 다른 문제는 리소스 폴더입니다. ionic을 사용하여 아이콘과 스플래시 화면을 자동으로 생성합니다. 이제 iOS에서 프로젝트를 빌드하려고 할 때 Android 용 이미지에 대해 불평합니다.

그래서 무엇이 필요하고 무엇을 생략 할 수 있습니까?

답변:


122

사용자 정의 코드를 추가하지 않은 한 플랫폼 및 플러그인 디렉토리를 무시할 수 있습니다.

플러그인 및 플랫폼을 추가 할 때 명령에 --save를 추가하십시오. 예 :

cordova platform add ios@3.8.0 --save

또는

cordova plugin add cordova-plugin-device --save

그러면 사용하는 플러그인 및 플랫폼의 기록이 config.xml 파일에 저장됩니다. 실행할 때 cordova prepare또는 cordova buildconfig.xml에 나열된 모든 플러그인 및 플랫폼이 아직 설치되지 않은 경우 설치됩니다.

준비 및 빌드에서 플랫폼을 지정할 수도 있습니다. 따라서 Mac을 사용하는 경우 git 저장소를 확인하고 실행 cordova prepare ios하여 ios 플랫폼과 플러그인 만 설치할 수 있습니다.


이것은 기존 플러그인 및 플랫폼에서도 작동합니다. Cordova는 단순히 재설치를 무시하지만 플러그인을 구성 파일에 추가합니다.
rnevius

4
cordova build플랫폼을 복원하지는 cordova prepare않았지만 Cordova 6.0에서 수행했습니다.
Victor Sergienko

43
--save플랫폼과 플러그인 을 잊어 버린 경우 cordova platform savecordova plugin save(노트 없음 --)을 사용 하면 관련 줄이 config.xml.
jcaron

1
이것은 잘 작동 platforms했지만 plugins. cordova prepare최소한 plugin.xmlsrc. 나는 포기하고 pluginsgit에 모두 저장했습니다 .
Jayen

7
Cordova 7.0.0부터 기본 동작이 저장으로 변경되었습니다. cordova.apache.org/news/2017/05/04/cordova-7.html
Kinjal Dixit

42

플랫폼에 따라 다릅니다.

이 .gitignore 예제를 사용하고 필요에 따라 사용자 지정할 수 있습니다.

# Mac
.DS_Store

# iOS
platforms/ios/build/
platforms/ios/www/
platforms/ios/cordova/console.log
*.xcuserdatad

# android
platforms/android/assets/www
platforms/android/bin
platforms/android/gen
platforms/android/local.properties
platforms/android/ant-build
platforms/android/ant-gen
platforms/android/CordovaLib/ant-build
platforms/android/CordovaLib/ant-gen
platforms/android/CordovaLib/bin
platforms/android/CordovaLib/gen
platforms/android/CordovaLib/local.properties

# wp8
platforms/wp8/bin
platforms/wp8/obj
platforms/wp8/www
platforms/wp8/.staging
platforms/wp8/*.suo
platforms/wp8/*.csproj.user

# res
resources/signing

platform / android / res도 무시하는 것이 합리적이지 않습니까? AFAIK / understnad, 빌드 프로세스 중에 생성됩니다 (부모 (프로젝트) 디렉토리의 res / resources 폴더에서).
Tomer Cagan 2015

4
나는 platforms/*/cordova 6.3.0 으로 무시 cordova prepare하고 다른 시스템 에서 할 수있었습니다 .
Jayen 2016-08-04

이 무시 파일에는 생성 된 파일이 많이 포함되어있는 것 같아서 더 좁아 야한다고 생각합니다.
Anders Lindén

1
또한 포함해야합니까 node_modules? 내가했다.
카메론 A. 엘리스

@ CameronA.Ellis 나도 가지고 node_modules있습니다. 추가 했습니까? 이러한 노드 모듈을 다운로드 할 수있는 방법이 있습니까?
wviana

18

나중에 다음 명령어를 사용하여 플랫폼과 플러그인을 저장할 수 있습니다.

플랫폼 대량 절약

$ cordova platform save

플러그인 대량 절약

$ cordova plugin save

위의 명령에는 없음이 있습니다.

한 가지 더, 다른 컴퓨터에서 저장소를 가져온 후 다음 명령을 실행하여 플러그인과 플랫폼을 자동으로 생성하고 가져옵니다.

$ cordova prepare

자세한 내용은 아래 링크를 참조하십시오. https://cordova.apache.org/docs/en/latest/platform_plugin_versioning_ref/#mass-saving-platforms-on-an-existing-project

Cordova 팁 : 올바른 솔루션을 얻으려면 먼저 공식 문서를 먼저 참조하십시오.



4

다른 답변의 대부분은 2/3 년 된 것입니다.

2019 업데이트 :

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

# ========== Cordova - platforms
# android
# platforms/android/app/src/main/assets
# platforms/android/app/src/main/AndroidManifest.xml
# platforms/android/app/src/main/res/drawable-*
# platforms/android/app/src/main/res/mipmap-*
# platforms/android/app/src/main/res/xml/config.xml
# browser
# platforms/browser/app/src/main/assets
# platforms/browser/config.xml
# platforms/browser/www
#
# ========== Cordova - plugins - remove all except json & xml
# plugins/**/.DS_Store
# plugins/**/*.cs
# plugins/**/*.h
# plugins/**/*.java
# plugins/**/*.js
# plugins/**/*.m
# plugins/**/*.map
# plugins/**/*.md
# plugins/**/*.modulemap
# plugins/**/*.ts
# plugins/**/LICENSE
# plugins/**/NOTICE
# plugins/**/*.gradle
# plugins/**/tests/

보시다시피 대부분의 줄 (#로 시작하는 모든 줄)에 주석을 달았습니다. 이는 플러그인 버전 변경에 문제가 발생하여 플러그인 업데이트에 어떤 일이 발생하는지 파악하기로 결정했기 때문입니다. 기본적으로 모든 플랫폼 및 플러그인 파일이 커밋에 포함되어 있으므로 이제 내 삶은 평화 롭습니다.

2019 :
나는 이것을 .

개발 및 응용 프로그램을 게시 한 후, 그 아래되었다 :
(아래에서 벗어나는 경우, 아래의 코멘트, 우리는 서로에게서 배울 수 있습니다)

# remove extension less files
*
!/**/
!*.*

# intermediate files
node_modules/
build/
obj/
Debug/
bin/
package-lock.json
.vs
.gradle
.idea
*.exe

# Cordova - platforms
platforms

# Cordova - plugins - remove all except json & xml
plugins/**/.DS_Store
plugins/**/*.cs
plugins/**/*.h
plugins/**/*.java
plugins/**/*.js
plugins/**/*.m
plugins/**/*.map
plugins/**/*.md
plugins/**/*.modulemap
plugins/**/*.ts
plugins/**/LICENSE
plugins/**/NOTICE
plugins/**/*.gradle
plugins/**/tests/

# res
**/resources/signing

# project specific
**/dist/
**/all.min.js

1
당신은 간단하게 할 수있는 plugins/*다음 !plugins/**/*.json!plugins/**/*.xml
베르나르도 달 Corno에게

또한 나는 패키지 잠금을 무시할 것을 권장 본 적이
베르나르도 달 Corno

제공된 링크에서 @ z-khullah, "플러그인 Git 클론을 무시하는 옵션"이 제공됩니다. 가끔 코드를 변경하므로 모든 파일을 무시할 수 없기 때문입니다. 이상적으로, 우리는 무시할 수 있지만 플러그인의 문제로 인해 온라인 제안이 있습니다. 특히 코르도바의 초보자로서 도움이 될 것입니다. 패키지 잠금은 일부 플러그인 설치가 변경 될 때마다 10 또는 20 줄의 줄을 변경하므로 이것은 또한 코드 검토를 원하지 않는 것입니다. 또한 지금까지 문제가없는 잠금 파일을 강화하여 패키지에서 생성됩니다. json. 우리의 관점을 제공하는 데 도움이되는 희망
Manohar Reddy Poreddy

예,하지만 패턴은 더 적은 라인으로 만 동일한 작업을 수행합니다. 패키지 잠금에 관해서는, 그것은 정확한 node_modules 구조를 보여주고 있기 때문에 디버깅 할 수 있지만, 그래, 난은 선택 사항입니다 생각
베르나르도 달 Corno


3

나는 다음 단계를 따랐다.

  • 코르도바 프로젝트 생성

  • 플랫폼 추가

  • 플러그인 추가

프로젝트를 빌드하기 전에 생성 된 파일을 커밋하고 푸시합니다. 프로젝트를 빌드하고 생성 된 새 파일을 확인한 후. .gitignore에 추가하기 위해 다음을 얻었습니다.

/platforms/android/gradlew.bat

/ platforms / android / build

/ platforms / android / gradle

/ platforms / android / libs

/platforms/android/gradlew.bat

/ platforms / android / CordovaLib / build

/platforms/android/.gradle


0

Niko 목록에 추가합니다.

# IntelliJ IDEA files
*.iml
.idea

#windows
Thumbs.db
Desktop.ini

*.sw[mnpcod]
*.log
*.tmp
*.tmp.*
log.txt

2
이들은 일반적으로 Cordova에만 국한되지 않고 무시하는 것이 좋습니다 ( .DS_StoreNiko의 답변에도 없습니다).
Jari Keinänen

이것들은 아마도 프로젝트 수준이 아닌 전역 gitignore 에서 해결되어야합니다 .
bdesham
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.