我們都有過這樣的經驗,當我們滿心歡喜的找到「可以照著實作」的教學文,打算一頭栽進去實作直搗黃龍,卻狀況百出。
ChatGPT的出現省去我們找資料的時間,但它給出的答案不一定能讓你「一次就過」。如果你遇上亂流的時候要怎麼突破重圍呢? 一起來看看吧!
.
.
.
如果你確定你真的沒有漏掉任何一步,那你可能要懷疑,會不會有步驟被ChatGPT略過了,最常見的像是「沒有切換到正確的檔案位置再下指令」。
先別急著翻我白眼XD 憑良心說,你也曾經因為這個原因卡住吧?
不管是網路上的文章,還是ChatGPT給的建議,很多時候不會把 每一個步驟
交代的非常仔細,我們勢必會在某個地方接到意外的驚喜。(ps.在使用Nx建立Angular專案的過程當中,我因為這個原因至少被絆倒兩次😐🙄)
.
.
.
延續剛剛的話題,當我們按著指示操作但是報錯了,這時候該怎麼辦?我們必須做到兩件事情:
1. 你提供「足夠的資訊」的讓ChatGPT判斷錯誤的原因
2. 搞清楚自己是在哪一個步驟開始出錯的
.
附上我在創建專案初期遇到error時,和ChatGPT的一段對話和Debug的訊息。由於字數很多,因此大家也可以直接看我提的3個問題,再自行腦補一下劇情XD
我執行了cd CouplesTrip_FrontEnd
但是它顯示
cd: no such file or directory: CouplesTrip_FrontEnd
請你根據我先前提供的終端機訊息
再次確認一下,
1. 我是否已經建立Nx工作區
2. 我是否已經在已存在的Nx工作區建立Angular專案
根據你先前提供的終端機訊息,可以確認以下情況:
(...略..)
請確認一下你當初創建工作區時的名稱,然後使用正確的工作區名稱來進入工作區目錄。如果你確定工作區名稱是 "couples-trip-front-end",則請嘗試使用以下指令來進入工作區目錄:
cd couples-trip-front-end
.
好的
的確是工作區名字錯誤導致切換不成功
現在我進到工作區了,但是執行下一個指令的時候又抱錯了
chiawendeMacBook-Pro couples-trip-front-end % npx nx serve couples-trip-front-end
> NX Cannot find project 'couples-trip-front-end'
根據你提供的終端機訊息(...中略...),為了解決這個問題,你可以執行以下步驟:
1.確保工作區的名稱正確:
確保你創建工作區時使用的名稱為 "couples-trip-front-end"。如果不確定,可以檢查workspace.json
檔案中的名稱設定。2.檢查專案名稱:
確保你創建 Angular 專案時使用了正確的專案名稱。請確保你執行npx nx generate @nrwl/angular:app couples-trip-front-end
時的專案名稱與你執行npx nx serve couples-trip-front-end
時提供的專案名稱相同。3.重新啟動:
有時候出現這種奇怪的錯誤可能是臨時性的。你可以嘗試關閉終端機,重新啟動並確保你在正確的工作區目錄中,然後再次執行指令。
.
好的 看起來我們找到問題了
因為我們還沒執行過npx nx generate @nrwl/angular:app couples-trip-front-end啊
你檢查一下你之前給我的訊息
非常抱歉,我理解錯了你的問題。確實,你之前提供的終端機訊息中並沒有顯示你已經執行過
npx nx generate @nrwl/angular:app couples-trip-front-end
這個指令來建立 Angular 專案。這個指令是創建 Angular 專案的重要步驟,而你之前的訊息中只有一部分選項配置的內容,並沒有完整的指令。請你在終端機中執行以下指令來建立 Angular 專案:
npx nx generate @nrwl/angular:app couples-trip-front-end
這個指令將會創建一個名為 "couples-trip-front-end" 的 Angular 專案,並將相關的配置和文件加入到工作區中。之後,你就可以使用
npx nx serve couples-trip-front-end
來運行這個專案。
.
.
.
在與ChatGPT進行文字對話的過程裡,它沒辦法每次都很精準地判斷「一段對話的結束」是什麼時候,這造成對談雙方很容易對彼此目前所處的步驟、狀況有錯誤的判斷
。
你有兩種方式可以確定這件事:
- 向ChatGPT提問:了解它對目前狀況的認知
- 主動告知你的狀況:
比方像是你的步驟。但儘量提供具體一點的資訊,例如:檔案結構、所處位置、最近幾個打的指令和log結果,這些都是屬於比較客觀的訊息
.
.
.
就以剛剛提到的,我在新增檔案的時候沒有切換到正確的檔案位置下指令,而小小卡關了一下。這其實背後反應了一些問題,包括我其實並不清楚這些指令的意義。
在反覆地把終端機的錯誤訊息貼給ChatGPT再做修正。幾個來回後我得到以下重要的發現:
1. Nx特有的「工作空間(workspace)」:
因此,我們要先用Nx先去新增一個workspace資料夾,再從這個workspace去新增一個Angular專案
2. 使用了Nx之後,會有 Nx CLI 去下指令,取代原本 Angular CLI 在做的事
.
看到報錯的紅字很惱怒,但為了解決的問題,我對照去比較了 Nx CLI 和 Angular CLI 在新增專案時所用的指令,更進一步掌握Nx在環境建置的過程中所扮演的角色。現在回頭來看這個除錯的過程,是一個很棒機會去仔細了解自己不熟的地方。(但麻煩不要太多,我的心臟負荷不了XD)
.
.
.
在「已知」的狀態去處理事情,跟在「未知」的狀態去處理事情,是非常不一樣的概念。而我們必須認知到,我們當前在處理問題時,自己是處理哪一個狀態,因為這會延伸成不一樣的詰問方式。
我們是以技術程度較低的情況下,要去引導一個比自己更全能的工具,和自己完成一起完成專案。想一想,這在現實的團隊開發過程中也不會是件容易的事。只能慶幸,ChatGPT不是一個真的有血有肉的人,不然我們可能得每天看他們的臉色剉咧等XD
希望今天的分享對你有點幫助:)