Код және жергілікті құрастыру
Терминал, бір қалта, dev сервері және GitHub-қа ешқашан түспеуге тиіс бір файл. Курстың соңына дейін жұмыс істейтін үстелің — осы.
терминал арқылы жоба ішінде еркін жүру, dev серверін іске қосып, тоқтату және құпия кілттеріңді repo-дан тыс ұстау
Терминал — пәрмендерді орындайтын мәтін жолағы. Бүкіл құпиясы осы. Бұл модульдегінің бәрі бір себептен бар: агентің дәл сол мәтін жолағы арқылы жұмыс істейді, ал оқи алмайтын нәрсеңді басқара алмайсың.
Өткен төрт модуль — не сұрайтының туралы. Бұл модуль — оны қай жерде сұрайтының туралы.
Терминал — сынақ емес, жай ғана мәтін жолағы
Терминал — тінтуірмен басудың орнына пәрмен теретін терезе. Ол дәл, оны скриптке жазуға болады, әрі сенің ноутбугіңде де, планетаның арғы шетіндегі серверде де бірдей жұмыс істейді. Тінтуірмен басу — мәзірдегі тармақты нұсқау; терминал — сол тілде сөйлеу: үйрену ұзағырақ, бірақ айта алатының әлдеқайда көп.
Дәл қазір бұл бір себептен маңызды: код жазатын ЖИ-агенттер соның ішінде жұмыс істейді. Claude Code пакет орнатқанда немесе тестіңді жүргізгенде, ол сен тере алатын дәл сол пәрмендерді орындап, нәтижесін экранға шығарады. Ол жолдар сен үшін жай шу болса, әр сеанс — қара жәшік, ал сен өзің баға бере алмайтын нәрсеге рұқсат беріп отырасың.
Қорқынышын кетіретін екі факт бар. Біріншісі: Enter пернесін баспайынша терминал ештеңе істемейді. Екіншісі: бірдеңе сәтсіз аяқталғанда, экрандағы қате мәтіні — бөлмедегі ең пайдалы нәрсе, одан қашудың керегі жоқ.
Әр пәрмен бір жерде орындалады
Терминал әрқашан бір қалтаның ішінде тұрады. Сол қалта — ағымдағы каталог, пәрмендердің көбі соның ішінде жұмыс істейді. Бастаушының шатасуының көбі — «пәрмен ештеңе істемеді», «файл табылмады» — шын мәнінде «мен басқа жерде тұр екенмін» дегенді білдіреді.
Жол (path) — қалтаның немесе файлдың мекенжайы. macOS, Linux, WSL және Git Bash ішінде бөліктерді / ажыратады; таза Windows-та — \. Бір Claude Code файлының өзі macOS пен Linux-та ~/.local/bin/claude жолында, Windows-та %USERPROFILE%\.local\bin\claude.exe жолында жатады — бір файл, екі түрлі жазылуы (орнату құжаттамасы). ~ — сенің үй қалтаң. . — осы жер. .. — бір деңгей жоғары.
Есте ұстайтын бір ереже: агентті іске қоспай тұрып, әрқашан cd пәрменімен жоба қалтаңның ішіне кір. Оның орнына үй қалтаңда немесе Desktop қалтасында іске қоссаң, барлық құжатың мен қалған жобаларың түгел агенттің жұмыс каталогының ішінде тұрады. Бір жоба — бір қалта — бір сеанс.
Он пәрмен оқулықтардың бәрін дерлік жабады
| Пәрмен | Не істейді |
|---|---|
pwd |
қай жерде тұрғаныңды шығарады |
ls |
осы қалтада не бар екенін тізеді |
cd name |
қалтаның ішіне кіреді |
cd .. |
бір деңгей жоғары шығады |
cat file |
файлды экранға шығарады |
mkdir name |
қалта жасайды |
touch name |
бос файл жасайды |
cp a b |
a-ны b-ға көшіреді |
mv a b |
жылжытады немесе атын өзгертеді |
rm name |
жояды |
Windows-та бұлар Git Bash ішінде жазылған күйінде жұмыс істейді. PowerShell де көбіне жауап береді — әдетте тек touch жетіспейді. CMD жауап бермейді. Төмендегі Windows бөлімі осы үшеуінің қайсысына қарап отырғаныңды ажыратып береді.
Кестедегі кез келген пәрменнен көрі көп уақыт үнемдейтін екі перне бар: жоғары көрсеткі соңғы терген жолыңды қайтарады, ал нағыз терминалда Tab пернесі жартылай терілген атауды өзі толтырады.
pwd
cd qairu-event
ls
cat package.json
cp .env.example .envЕнді осыны өзің істеп көр — саған зиян келтіре алмайтын терминалда.
node_modules — сенің кодың емес
Ешкім дерлік бәрін нөлден жазбайды. Пакет менеджері жобаңа керек кітапханаларды, олардың өзіне керек кітапханаларды үйлесімді нұсқаларымен жүктеп алады да, дәл сол нұсқаларды lock файлына жазып қояды — сонда кез келген компьютер тап сол нәрсені орнатады. JavaScript үшін бұл npm, pnpm немесе bun; Python үшін pip немесе uv. Жүктемелерді қолмен іздеудің орнына — код блоктарына арналған қолданбалар дүкені.
package.json— сенің не сұрағаның: тәуелділіктер және аты берілген пәрмендер (dev,build,test).- lock файлы — шын мәнінде не алғаның, дәл нұсқасына дейін.
node_modules/— жүктеп алынған кодтың өзі. Жүздеген қалта. Оны ешкім оқымайды.npm install— алғашқы екеуін үшіншісіне айналдыратын пәрмен.
node_modules қалтасы git-ке ешқашан түспейді: ол орасан үлкен, әрі бір пәрменмен кез келген жерде қайта құрылады. Құралдар да солай деп есептейді. Claude Code git worktree жасағанда, ол таза көшірме болады, сондықтан node_modules ол жерде жай ғана жоқ — оны қайта орнатасың (worktree туралы). Егер агент сол қалтаны commit-ке қосуды ұсынса, келіспе.
localhost — сенің үйің, интернет емес
npm run dev пәрмені package.json ішінен dev жолын тауып, соны іске қосады. Одан dev сервері көтеріледі: өз компьютеріңде жұмыс істейтін шағын веб-сервер, ол жобаңды өз браузеріңе береді және файлды сақтаған сайын бетті қайта жүктейді.
Ол мекенжай шығарады, әдетте http://localhost:3000 сияқты. Басқа жоба — немесе сол компьютердегі екінші сервер — басқа нөмір шығарады. Оны жаттап алудың орнына өз экраныңнан оқы: порт дегеніміз — өз компьютеріңдегі есіктің нөмірі, ал терминал қай есікті ашқанын әрдайым өзі айтып тұрады.
Үш әдет:
- Dev серверіне жеке терминал қойындысын бер. Ол жұмыс істеп, нәтиже шығарып тұра береді; қатып қалған жоқ.
Ctrl+Cоны тоқтатады. «Port already in use» деген хабар әрдайым дерлік екінші серверді қосып жібергеніңді білдіреді.- Қатесі жоқ бос бет те — ілгерілеу. Агентке «бұзылды» деп айтпай тұрып, терминалдағы нәтижені және браузер консолін қарап шық — екеуін де көшіріп жібер.
.env кілттерді ұстайды және ноутбугіңнен шықпайды
Орта айнымалылары — кодтың сыртында тұратын, бағдарлама іске қосылғанда соған берілетін аты бар мәндер: API кілттері, дерекқор мекенжайы, NODE_ENV=production сияқты параметрлер. Солардың арқасында құпия деректер репозиторийге түспейді, әрі дәл сол код сенің ноутбугіңде бір түрлі, серверде екінші түрлі жұмыс істей алады. Компьютеріңде олар .env файлында тұрады, ал ол файл .gitignore тізімінде болуға тиіс; хостингте оларды оның орнына басқару панеліне қоясың. Кеңсенің кілттері күзетшіде тұрады, есіктің сыртына жапсырылмайды.
Бұл ереженің ерекше жағдайы жоқ, ал дұрыс реті біреу ғана:
Қолданбаны жасайды. Жұмыс істеткізеді. git init пәрменін орындап, бәрін commit жасап, GitHub-қа push жасайды. .gitignore файлын кейін, бір оқулық еске салғанда қосады.
Кілт енді репозиторий тарихында тұр. Файлды өшіру оны ол жерден кетірмейді. Жалғыз шешім — сол кілтті жарамсыз етіп, жаңасын алу.
Бірінші commit-ке дейін ішінде .env және node_modules/ жазылған .gitignore файлын жасайсың.
Кілттердің аты бар, мәндері бос .env.example файлын commit жасайсың — сонда кез келген адам, оның ішінде жаңа ноутбуктағы өзің де, шын кілтті көрмей-ақ жобаға қандай айнымалы керегін біледі.
Құпия деректердің мүлде бармайтын жерін де есте ұста: frontend — пайдаланушының құрылғысында жұмыс істейтін бөлік, оны кез келген адам браузердің әзірлеуші құралдарын ашып оқи алады. Кілттердің орны — backend немесе хостингтің басқару панелі.
ТереңірекАгентке .env файлын оқыма деп айтсам, жеткілікті ме?
Айтуға болады, айту керек те — бірақ оны құлып деп қабылдама. .claude/settings.json ішіндегі "deny": ["Read(./.env)", "Read(./.env.*)", "Read(./secrets/**)"] сияқты ереже Read құралын бұғаттайды, әрі Bash ішіндегі cat, head, tail, sed пәрмендерін де қамтиды. Бірақ ол файлды өзі ашатын скриптті тоқтатпайды, ал Bash ережелері бағдарламаның өзін емес, пәрмен мәтінін салыстырады. Рұқсаттар туралы құжаттама мұны ашық жазады: бұл ережелер — ыңғайлылық үшін, қауіпсіздік шекарасы емес. Нағыз оқшаулау sandbox арқылы келеді, ал таза Windows-та sandbox мүлде жоқ. Сондықтан deny тізімін екінші қабат деп есепте, ал бір рет commit-ке түскен немесе чатқа көшірілген кілтті түгел ауыстыр.
«Менің компьютерімде жұмыс істеп тұр» — әзіл емес, диагноз
Бұл сенің компьютеріңде екінші компьютерде жоқ бір нәрсе бар дегенді білдіреді. Әдеттегі бес күдікті бар, бесеуін де екі минутта тексеріп шығуға болады.
- Жетіспейтін орта айнымалысы.
.envфайлың тек сенде бар, басқа ешқайда жоқ. Шешімі: айнымалыларды хостингтің басқару панеліне қос. - Commit жасалмаған файл. Ол жұмыс істеп тұр, себебі файл жобада емес, сенің дискіңде жатыр. Шешімі:
git statusпәрменін орында. - Орнатылмаған тәуелділіктер. Екінші компьютерде
package.jsonбар, бірақnode_modulesжоқ. Шешімі: орнату пәрменін орында. - Бас әріптер. Windows үшін
Hero.astroменhero.astro— бір файл. Deploy серверлерінің көбі Linux-та жұмыс істейді, ал ол үшін бұл — екі бөлек файл: сондықтан компьютеріңде жұмыс істейтін импорт build кезінде құлайды. Шешімі: файл атын әрпін әрпіне келтіріп дәл жаз. - Басқа нұсқа. Ол жақтағы орындалу ортасы сенікінен жаңарақ немесе ескілеу. Claude Code-тың өзі осыны көрсетіп тұр: npm арқылы орнату жолына Node.js 22 немесе одан жаңа нұсқа керек (орнату құжаттамасы).
Дауды фактіге айналдыратын нәрсе — deploy жасау. Өз компьютеріңде жұмыс істегені — әлі бітті дегені емес; deploy жасалса — бітті. Ол 12-модульде.
Windows-та отырсаң, бұл бөлімді екі рет оқы
Бұл курсты оқитындардың көбі Windows-та отыр, ал оқулықтардың көбін Windows-та отырмайтын адамдар жазады. Саған Linux керек емес. Claude Code Windows 10 1809 немесе одан жаңа нұсқасында, 4 ГБ не одан көп жадпен, PowerShell не CMD ішінде тікелей жұмыс істейді, ал WSL міндетті емес — WSL 2 тек Claude Code-тың sandbox мүмкіндігі керек болса ғана қажет, оны таза Windows қолдамайды (орнату құжаттамасы).
Сонда да Git for Windows орнатып қой. Ол болса, Claude Code өзінің Bash құралы үшін Git Bash пайдаланады; болмаса, PowerShell құралына ауысады — оның үстіне 9-модульде git бәрібір керек болады.
Алдымен қай shell-ге қарап отырғаныңды біл.
| Пәрмен жолындағы жазу | Қай shell | Демек |
|---|---|---|
PS C:\Users\you> |
PowerShell | PowerShell үшін жазылған орнату пәрмендерінің орны осы |
C:\Users\you> |
CMD | CMD үшін жазылған орнату пәрмендерінің орны осы |
you@laptop:~$ |
Git Bash немесе WSL | оқулықтардағы macOS/Linux пәрмендері жазылған күйінде жұмыс істейді |
Содан кейін қатені қайта-қайта қайталамай, оқып шық.
| Хабар | Шын мәнінде не болды |
|---|---|
The token '&&' is not a valid statement separator |
CMD пәрменін PowerShell ішіне көшіріп қойдың |
'irm' is not recognized |
PowerShell пәрменін CMD ішіне көшіріп қойдың |
'claude' is not recognized |
орнату қалтасы PATH тізімінде жоқ — оны түзе де, жаңа терминал аш |
Claude Code does not support 32-bit Windows |
PowerShell орнына «PowerShell (x86)» терезесін ашқансың |
Төртеуі де ресми орнату және орнату ақауларын жою беттерінен алынған. Ең жиі кездесетіні — PATH. Мінеки, шешімі — содан кейін терезені жауып, жаңасын аш, себебі ашық тұрған терминал PATH өзгергенін ешқашан байқамайды:
$currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
[Environment]::SetEnvironmentVariable('PATH', "$currentPath;$env:USERPROFILE\.local\bin", 'User')Жобаны агентке таныстыртып ал
Жобаның құрылымын өзің оқып отырып үйренудің қажеті жоқ. Сұра — содан кейін әр жауапты жоғарыдағы пәрмендермен өзің тексер. Бұл модульдің мәні де сол: енді сен агент айтқан нәрсені тексере аласың.
Мен терминалды енді ғана үйреніп жүрмін. Осы жобада мына төрт нәрсені істеп, әрқайсысын екі сөйлеммен түсіндір:
1. Қалталар құрылымын көрсет, node_modules пен .git қалтасын қоспа.
2. Dev серверін іске қосатын дәл пәрменді және ол шығаратын мекенжайды айт.
Мұны package.json файлынан оқы - болжама.
3. .gitignore ішінде .env және node_modules бар ма, тексер. Біреуі жоқ болса,
қоспай тұрып, қосатын жолыңды көрсет.
4. Бұл жоба оқитын барлық орта айнымалысын тек атымен тізіп бер. Мәнін ешқашан шығарма.
Басқа ештеңені өзгертпе. Бір нәрсеге күмәндансаң, болжаудың орнына солай деп айт.Бір мүмкіндік сұрамай тұрып, жұмыс үстеліңді дайында
Қандай да бір мүмкіндік сұрамай тұрып, бұзып, қайта жөндей алатын бетке жет.
mkdir qairu-event, содан кейінcd qairu-event. Бір жоба — бір қалта, Desktop қалтасында шашылып жатқан ештеңе жоқ.- Жобаның қаңқасын агент құрсын. Содан кейін орнату пәрменін де, dev серверін де өзің іске қос — бір рет болса да өз қолыңмен теріп көр.
- Терминал шығарған мекенжайды аш. Бос дерлік бет те есептеледі.
- Ішінде
.envжәнеnode_modules/жазылған.gitignoreфайлын жаса. Кілттердің аты бар, мәндері бос.env.exampleфайлын, содан кейін шын мәндері бар.envфайлын жаса. Дәл осы ретпен — 9-модуль бұл қалтаны repo-ға айналдырмай тұрып.
Беттегі бір сөзді өзгертіп, оның браузерде жаңарғанын көріп, серверді Ctrl+C арқылы тоқтатып, содан соң ешқайдан қарамай қайта іске қоса алсаң — қадам бітті.
Он пәрмен, Windows қателерінің кестесі және .env ережесі — практика кезінде ашып қоюға болатын бір бетте.