# Elixir-ის ქეში

Tuist ხელახლა იყენებს კომპილირებულ დამოკიდებულებებს ადგილობრივად და CI ბილდების განმავლობაში. ჩართეთ ერთხელ და შემდეგ განაგრძეთ `mix compile` და `mix test`-ის გამოყენება.

## მოწყობა

ერთხელ გაჰყევით <.localized_link href="/guides/get-started/elixir-project#set-up-tuist">დაიწყეთ Elixir-თან მუშაობა</.localized_link>. საერთო მოწყობა უზრუნველყოფს დამოკიდებულებების ქეშირებას ბილდისა და ტესტების ანალიტიკასთან ერთად; დამატებითი ქეშის მოწყობა არ არის საჭირო.

`cache: true` ავტომატურად ირჩევს მხარდაჭერილ Hex და Git დამოკიდებულებებს; მათ ჩამოთვლა არ არის საჭირო. ნატიური/მორგებული კომპილაცია და ადგილობრივი დამოკიდებულებები ჩვეულებრივად გრძელდება Mix-ის მეშვეობით. თქვენი აპლიკაციის საწყისი ფაილები არ ინახება ქეშში.

## აკომპილეთ ჩვეულებრივად

```sh
mix compile
mix test
```

როდესაც დამოკიდებულებას სჭირდება კომპილაცია, Tuist ამოწმებს ადგილობრივ ქეშს, შემდეგ კი საერთო დისტანციურ ქეშს. გამოტოვების შემთხვევაში კომპილაცია მიმდინარეობს ჩვეულებრივად და შედეგი ინახება მომავალი ბილდებისთვის. შერჩეული, მხარდაჭერილი დამოკიდებულებები, რომლებსაც Mix განიხილავს როგორც აქტუალურს, ითვლება ადგილობრივ მოხვედრად (hit), თუ მათი კომპილირებული გამომავალი მონაცემები არსებობს და ვალიდურია; ქეშში ძებნა არ არის საჭირო. თუ ავტორიზაცია ან ქეში მიუწვდომელია, Mix მაინც აკომპილებს ჩვეულებრივად.

## ნახეთ ქეშის მოხვედრები

გახსენით **Mix Cache** თქვენი პროექტის დაფაზე მოხვედრის სიხშირის, გადაცემებისა და ბოლო ბილდების სანახავად. აირჩიეთ ბილდის **Mix cache** ჩანართი იმის სანახავად, თუ რომელმა ამოცანებმა მოახდინა მოხვედრა ან გამოტოვება. **CAS Outputs** აჩვენებს რეალურ დისტანციურ ჩამოტვირთვებსა და ატვირთვებს; ადგილობრივი მოხვედრები არ ქმნიან დისტანციური გადაცემის ჩანაწერებს. უკვე აქტუალური გამომავალი მონაცემების ხელახლა გამოყენება ზრდის მოხვედრის სიხშირეს, მაგრამ არ მოიცავს გადაცემულ ბაიტებს, აღდგენის ლატენტურობას ან შენახული დროის შეფასებას.

აღდგენის შესამოწმებლად, გაასუფთავეთ მხარდაჭერილი დამოკიდებულების კომპილირებული გამომავალი მონაცემები და ისევ აკომპილეთ:

```sh
mix deps.clean nimble_options --build
mix compile
```

შეცვალეთ `nimble_options` თქვენი პროექტის ისეთი დამოკიდებულებით, რომელიც უკვე შეავსო ქეში. შეინარჩუნეთ იგივე Mix გარემო და კომპილატორის პარამეტრები.

## მორგება მხოლოდ საჭიროების შემთხვევაში

უმეტეს პროექტს შეუძლია შეინარჩუნოს `cache: true`. გამონაკლისებისთვის გამოიყენეთ საკვანძო სიტყვების სია:

```elixir
tuist: [
  project: "your-account/your-project",
  cache: [exclude: [:a_dependency_with_compile_time_side_effects]]
]
```

- **დამატებითი კომპილაციის დროის შეყვანები:** გამოაცხადეთ გარე ფაილები `inputs: ["schemas"]`-ით და გარემოს ცვლადები `env: ["COMPILER_OPTION"]`-ით.
- **მხოლოდ ადგილობრივად:** დააყენეთ `remote: false`.
- **არ არის დისტანციური ატვირთვები:** დააყენეთ `upload: false`. სერვერის ნებართვები კვლავ აკონტროლებენ წვდომას.
- **ქეშირების გათიშვა:** დააყენეთ `cache: false`.

> [!IMPORTANT]
> კომპილაციას შეუძლია შეასრულოს ნებისმიერი Elixir კოდი. გამოაცხადეთ დამატებითი შეყვანები და გამორიცხეთ ისეთი დამოკიდებულებები, რომელთა დროზე/ქსელზე დამოკიდებული კოდი ან გვერდითი ეფექტები ყოველ ბილდზე უნდა შესრულდეს. ქეშირებულ არტეფაქტებს შეიძლება ჰქონდეთ საიდუმლოებები, ხოლო ქეშის ჩამწერები არიან სანდო კოდის მწარმოებლები: არ მისცეთ არასანდო სამუშაოებს ქეშში ჩაწერის მონაცემები.

დამოკიდებულებების შერჩევის, სხვადასხვა checkout ბილიკზე ხელახლა გამოყენების, პრობლემების გადაჭრისა და იმპლემენტაციის დეტალებისთვის, იხილეთ <.localized_link href="/guides/features/cache/elixir-advanced">Elixir-ის ქეშის გაფართოებული კონფიგურაცია</.localized_link>.
