ফোনগ্যাপ / কর্ডোভা 3.0 প্রকল্পের জন্য .gitignore - আমার কী প্রতিশ্রুতিবদ্ধ করা উচিত?


105

আমি কেবল একটি নতুন ফোনগ্যাপ ap.০ প্রকল্প তৈরি করার চেষ্টা করেছি ... দ্রষ্টব্য: আমি ফোনগ্যাপে নতুন। যাইহোক, আমি দেখতে পাচ্ছি প্রকল্পের ফোল্ডারে রয়েছে:

  • .cordova
  • merges
  • platforms
  • plugins
  • www

এবং চেষ্টা করে phonegap local run androidদেখতে পেলাম অনেকগুলি বাইনারি / উত্পন্ন ফাইল platforms/android। এটি আমার অবাক করে দেয়, এই ফোল্ডারটির কাঠামোর কোন অংশগুলি আমার গিট সংগ্রহস্থলে যুক্ত করা উচিত। সাধারণত, আমি বাইনারি ফাইলগুলি প্রতিশ্রুত করা অত্যন্ত চর্চা হিসাবে বিবেচনা করব consider তাই, আমি সাধারণত নিদর্শন মত যোগ হবে bin/, obj/, *.o, *.pycইত্যাদি .gitignoreবিষয় আছে যা শুধুমাত্র একত্রীকরণ দ্বন্দ্ব তৈরি করে তোলে সঙ্গে আমার Git সংগ্রহস্থলের দূষণ এড়ানো।

অবশ্যই, wwwগিটে যোগ করা উচিত, কিন্তু প্রকল্পের অন্যান্য অংশগুলি সম্পর্কে। তারা সোর্স কোডের পণ্যগুলি কতগুলি বাড়িয়ে তুলবে এবং এগুলির প্রকল্প কনফিগারেশনটি কোন প্রসারিত হবে?

আপনি কি করেন? মঞ্জুর আমি নতুন তাই আমি সবেই বুঝতে পারি এখানে কী বোঝায় ...


1
আমি ফোনগ্যাপ / কর্ডোভা সম্পর্কে জানি না তবে যখন সন্দেহ হয় তখন কেবল সমস্ত কিছু করি। যখন আপনি জানতে পারবেন যে কিছু অতিরিক্ত অতিরিক্ত ছিল :) আপনি সর্বদা এটি মুছে ফেলতে পারেন :)
লিফ

উত্তর:


43

উত্তরটি আপনি ফোঙ্গাপ অ্যাপ্লিকেশন বিকাশকারী উইচ প্ল্যাটফর্মের উপর এবং যদি আপনি স্ট্যান্ডার্ড ডিরেক্টরি কাঠামোটি অনুসরণ করেন তবে তার উপর নির্ভর করে।

যদি আপনার প্রকল্প ডিরেক্টরি কাঠামোটি মানসম্মত হয় তবে আপনি এই গিটিগনোর থেকে শুরু করতে পারেন এবং এটি আপনার প্রয়োজনের জন্য সংশোধন করতে পারেন।

থাম্বের নিয়মে আপনাকে সমস্ত উত্পন্ন ফাইলগুলি বাদ দিতে হবে bin/ এবং gen/ডিরেক্টরিগুলি । আপনি যদি আপনার অ্যাপ্লিকেশনটির একটি অ্যান্ড্রয়েড সংস্করণ বিকাশ করছেন তবে আপনার যেমন বিল্ড ফাইলগুলিও বাদ দেওয়া উচিত *.apk

androidউপ - ডিরেক্টরিতে উত্পন্ন সমস্ত ফাইলকেও বাদ দেওয়া উচিত:

Android/bin/
Android/gen/
Android/assets/

1
আপনি কোন প্ল্যাটফর্মগুলি বিকাশ করছেন তা বিবেচ্য নয়। যে প্ল্যাটফর্মগুলি আপনি এখনও বিকাশ করছেন না কেবল সেগুলি প্রয়োগ করে এমন বিষয়গুলিকে উপেক্ষা করার কোনও ক্ষতি নেই। তিনি সূচিত করেছেন যে তিনি স্ট্যান্ডার্ড ডিরেক্টরি কাঠামোটি ব্যবহার করছেন।
rjmunro

আমার কর্ডোভা গিটিগনোরের জন্য নির্লজ্জ প্লাগ: gist.github.com/elliot-labs/c92b3e52053906816074170ada511962
ল্যাবস এলএলসি

49

@ জেক মোশেনকো উত্তরটি প্রসারিত করছেন:

আমি platformsডিরেক্টরি বাদ দেওয়ার ধারণা পছন্দ করি । আসলে, আমি উভয় pluginsএবং platformsডিরেক্টরি উভয়ই বাদ দিতে সক্ষম । এর জন্য একটি ভাল সূচনা পয়েন্ট .gitignore:

platforms/
plugins/

এটির সাথে সমস্যাটি হ'ল রেপোর ক্লিন কপিটি এটির সাথে কাজ করার আগে অবশ্যই শুরু করতে হবে। একটি init স্ক্রিপ্ট তৈরি করা এর অর্থ হতে পারে যেমন:

#!/bin/bash
textReset=$(tput sgr0)
textGreen=$(tput setaf 2)
message_info () {
  echo "${textGreen}[my-app]${textReset} $1"
}

message_info "Creating necessary directories..."
mkdir plugins
mkdir platforms

message_info "Adding platforms..."
# If using cordova, change to: cordova platform add android
phonegap build android
phonegap build ios

message_info "Adding plugins..."
# If using cordova, change to: cordova plugin add
phonegap local plugin add https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git

এই পদ্ধতির একটি সতর্কতাই হ'ল ফোনগ্যাপ / কর্ডোভা (অর্থাত্ স্ক্রিন ওরিয়েন্টেশন সমর্থন) যা সমর্থন করে তার বাইরে প্ল্যাটফর্মের নির্দিষ্ট অ্যাপ কোড / কনফিগারেশনটি কাস্টমাইজ করা কিছুটা চ্যালেঞ্জিং করে তোলে।

আপডেট: বাশ গিস্ট

এই সারকথা একটি প্রকল্প যে কমিট না পরিচালনা করার জন্য আরো একটি সম্পূর্ণ স্ক্রিপ্ট রয়েছে pluginsএবংplatforms ডিরেক্টরিগুলি ডিরেক্টরিগুলি । এটি www থেকে প্ল্যাটফর্ম ডিরেক্টরিতে (আইওএস এবং অ্যান্ড্রয়েডের জন্য) আইকনগুলি এবং স্প্ল্যাশস্ক্রিন চিত্রগুলি অনুলিপি করার জন্য, প্লাগইন ইনস্টল করতে এবং সংস্করণ নিয়ন্ত্রণে যুক্ত হওয়া প্ল্যাটফর্মের নির্দিষ্ট ফাইলগুলি পরিচালনা করার জন্য একটি ব্যবস্থা সরবরাহ করে।

আপডেট: গ্রান্ট গিস্ট

এখানে আরেকটি হল সারকথা যা উপরে উল্লিখিত ব্যাশ স্ক্রিপ্ট একটি ঘোঁৎ ঘোঁৎ পোর্ট। (সংঘাতের পরামর্শ দেওয়ার জন্য @ ওবিকে ধন্যবাদ)


2
এই পদ্ধতির সাহায্যে প্লাগইন বিকাশকে সামঞ্জস্য করার জন্য আমি কীভাবে bespoke প্লাগইন / নেটিভ কোড যুক্ত করা বা AndroidManLive.xML পরিবর্তনগুলি করব? অন্য কোথাও এমন কি আছে যে AndroidManLive.xML পরিবর্তনগুলি যুক্ত করা যেতে পারে?
ওবি

লিঙ্কযুক্ত টুকরোটি দেখুন, বিশেষত এখানে । এটি platform-mergesডিরেক্টরি থেকে কোনও ফাইলকে ওভাররাইট / যুক্ত করে । উদাহরণস্বরূপ, আপনি প্রতিশ্রুতিবদ্ধ হতে পারে platform-merges/android/AndroidManifest.xml। এই পদ্ধতির সহজ প্রকল্পগুলির জন্য ভাল কাজ করে তবে এটি বৃহত্তর প্রকল্পগুলির জিনিসগুলিকে জটিল করতে পারে।
জনাথন ডিকসন

আপনার সহায়তার জন্য ধন্যবাদ :) আমি একই কাজ করতে গ্রুর্ট ব্যবহার করে শেষ করেছি ( github.com/gruntjs/grunt-contrib-copy সহ )
ওবি

3
আপনি প্রত্যেকটিতে একটি .গিটকিপ ফাইল যুক্ত করে এবং আপনার .gitignore: প্ল্যাটফর্ম / *! প্ল্যাটফর্ম / .গিটকিপ প্লাগইন / *! প্লাগইন / .গিটকিপ
aharris88

1
@ আহরিস ৮৮ ভাল কথা, তবে আমি বিশ্বাস করি যে প্রকল্পটি পরিষ্কার করা সহজ করার জন্য আমি এটিকে এড়িয়ে চলেছি। অর্থাত rm -rf platforms plugins
জোনাথন ডিকসন

7

সুতরাং আমি কেবল পরীক্ষার এবং ত্রুটির মধ্য দিয়ে এটি আবিষ্কার করেছি। platformsযেমন মাছি উপর উৎপন্ন হয় ডিরেক্টরির, যদি আপনি phonegap স্থানীয় অথবা দূরবর্তী বিল্ড ব্যবহার করছেন বাদ দেওয়া যেতে পারে। লুকানো ফোল্ডার সহ অন্যান্য ফোল্ডারগুলির সমস্ত .cordovaপ্রয়োজন।


4
হাই, আমি যদি অ্যান্ড্রয়েড বা আইওএস বিল্ডকে কাস্টমাইজ করতে কিছু তৃতীয় পক্ষের জার ফাইল বা উদ্দেশ্য-সি উত্স ফাইল ব্যবহার করি, উদাহরণস্বরূপ, পার্স নোটিফিকেশন ইন্টিগ্রেশন। এটি অবশ্যই কিছু জাভা কোড লিখতে হবে, তবে গিট সংগ্রহস্থলটি কীভাবে পরিচালনা করবেন? ফোনগ্যাপ স্থানীয় বিল্ড অ্যান্ড্রয়েড আমার কাস্টমাইজড ফাইলগুলিকে ওভাররাইট করবে?
ইথানজ

আমার জন্য এফওয়াইআই, দেখে মনে হচ্ছে ফোনগ্যাপ বিল্ডটি .cordovaফোল্ডার ছাড়াই তৈরি করবে - আপনি কেন বলেন যে এটি জেক মোশেনকো দরকার?
ম্যাটি জে

7
এই পরামর্শ সম্পূর্ণ ভুল। আপনার প্ল্যাটফর্ম ডিরেক্টরি বাদ দেওয়া উচিত নয় কারণ অবশেষে আপনাকে কিছু প্ল্যাটফর্ম নির্দিষ্ট কোড এবং প্লাগইনগুলিতে যুক্ত করতে হবে যদি আপনি কিছু অকারণে করেন। আপনার প্রায়শই অ্যান্ড্রয়েড ম্যানিফেস্ট এবং আইওস প্লিস্টগুলিও পরিচালনা করতে হবে।
ড্যানিয়েল উইলিয়ামস

3
আমি বলব প্ল্যাটফর্ম বাদ দেওয়া একটি ভাল শুরু। যদি নির্ভরতা থাকে তবে সেগুলি অন্য কোথাও রাখা উচিত এবং প্ল্যাটফর্ম যুক্ত করার পরে একটি বিল্ড স্টেপ হিসাবে অনুলিপি করা উচিত।
তিশমা

আমি এই উত্তর পছন্দ। আমি কেবল প্ল্যাটফর্মের ডিরেক্টরি বাদ দিচ্ছি
রিয়েলটেবো

4

আমি এই সমস্যাটি এবং আমাদের অবশেষে অনুসরণ করা পদ্ধতির সাথে আমার অভিজ্ঞতাটি এখানে রেখে যেতে চেয়েছিলাম।

আমাদের ফোনগ্যাপ প্রকল্পে আমরা .gitignore ফাইল ব্যবহার করে সমস্ত ফাইল কম ফোল্ডার / প্ল্যাটফর্মের প্রতিশ্রুতিবদ্ধ করতে শুরু করি। আমরা এইভাবে ভেবেছিলাম, যখন বিকাশকারী সংগ্রহশালার ক্লোন করে ফেলেন তখন কেবলমাত্র কার্যকর করা হবে:

ফোনগ্যাপ / কর্ডোভা অ্যাড প্ল্যাটফর্ম

তবে তা হয়নি। প্ল্যাটফর্মটি যুক্ত হয়ে গেলে এবং আমরা সংকলনের চেষ্টা করার পরে, একটি ত্রুটি উপস্থিত হয়েছিল এবং অ্যাপটি ডিভাইসে ইনস্টল হয়নি install

লগগুলি সন্ধান করে আমরা কিছু হিট পেয়েছি যে এই ত্রুটিটি প্লাগইনগুলির কারণে। তাই আমরা প্রকল্পে আমরা যে সমস্ত প্লাগইন ব্যবহার করছি তা পুনরায় ইনস্টল করার সিদ্ধান্ত নিয়েছি এবং অ্যাপটি সঠিকভাবে চালিত করতে চাইছি।

সুতরাং আমার পরামর্শ হ'ল ফোল্ডার প্ল্যাটফর্ম এবং প্লাগইনগুলি কম পরিমাণে সমস্ত সামগ্রী সংরক্ষণ করতে হবে। প্রকল্পে ব্যবহৃত প্লাগইনগুলির একটি তালিকা সহ একটি ফাইল README ফাইলের সংগ্রহস্থলে তৈরি এবং আপলোড করুন।

এইভাবে, যখন কোনও বিকাশকারী সংগ্রহস্থলটি ক্লোন করেন, তখন তাকে এই করতে হবে:

1.- প্ল্যাটফর্মগুলি যুক্ত করুন: ফোনগ্যাপ / কর্ডোভা প্ল্যাটফর্ম "প্ল্যাটফর্ম"

২- প্লাগইনগুলি যুক্ত করুন: ফোনগ্যাপ / কর্ডোভা প্লাগইন "প্লাগইন" যুক্ত করুন

আশাকরি এটা সাহায্য করবে!

শুভেচ্ছা।


1

এই স্টাফ অনেক কিছুই পুরানো এবং সত্যিই অ্যাপাচি কর্ডোভার সর্বশেষতম সংস্করণে প্রয়োগ হয় না। আমি অ্যাপাচি কর্ডোভা 5.1.1 ব্যবহার করছি এবং এই .gitoreore আমাকে এখনও অ্যানড্রয়েড এবং আইওএস উভয়ের জন্য সংস্করণ করার দরকার নেই এমন সমস্ত জিনিস ব্লক করার সময় কাস্টম আইকন ইত্যাদির সাথে কাস্টমাইজ করতে দেয়। হ্যাঁ। গ্রেডেল ব্যবহার করা হয়েছে তাই এটি অপসারণ করবেন না!

www/
.gradle/
build/
.tmp/
.temp/
coverage/
*.log
node_modules/
bower_components/

আপনি কেন www/সেখানে ফোল্ডারটি অন্তর্ভুক্ত করবেন ? আমার অ্যাপ্লিকেশনটিতে, এটি আসলে ওয়েব অ্যাপ্লিকেশন জীবন থেকে ব্যবহৃত বেশিরভাগ দরকারী জিনিস ছিল।
vindia

2
@ উইন্ডিয়া আমার ধারণা আমার তালিকাটি কারও শুরু করার জন্য একটি টেমপ্লেট হতে পারে। আমি ভেবেছিলাম যে সমস্ত হিপস্টারগুলি তাদের স্বয়ংক্রিয় বিল্ড প্রক্রিয়াটির জন্য একটি উদ্বায়ী আউটপুট হিসাবে www / ফোল্ডারটি ব্যবহার করেছে। আমার খারাপ!
হেলজগেট

আমি বাদ দিয়েছি www/কারণ কাস্টম বিল্ড স্ক্রিপ্টগুলির দ্বারা উত্পন্ন সামগ্রীগুলি। আপনি সত্যিই সেখানে উত্স ফাইল চান না।
kim3er

0

যদিও এটি কিছুটা ব্যক্তিগত পছন্দ, আমি এটি নিয়ে চলেছি (কেবল একটি অ্যান্ড্রয়েড প্রকল্পের জন্য)। সর্বাধিক অপসারণ করা হচ্ছে, তবে যা পছন্দসই তা রক্ষা করা

ToonPlane/platforms/android/*
!ToonPlane/platforms/android/AndroidManifest.xml
ToonPlane/plugins/*
!ToonPlane/plugins/android.json
!ToonPlane/plugins/fetch.json
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.