[問題]Angular2 使用別人建置好的專案時會出問題

我自己new一個專案出來,進行ng serve 的動作可以順利成功,
當想要開啟別人傳給我的專案的時候,常常發生這個錯誤。
“the @angular/compiler-cli package was not properly installed”,
以下是我的cli版本以及錯誤訊息,上面他建議的指令有操作過,依然會有錯誤。
想請教大家是否有比較好的解決方式,非常感激。
錯誤訊息、我的cli版本

我不太確定你的問題在哪,我只能說明我遇過的狀況,
處理方式不見得是正確的方式,僅供參考。

1.Angular-CLI 專案版本與全域版本不同:
如果差異不大,一般只有警告訊息。
可以改用 npm start 以專案的CLI版本執行。

2.Angular 設定檔名稱不同,因為看你的版本是2.4.10,
早期設定檔名稱是"angular-cli.json",
我忘了重哪一版開始變成".angular-cli.json" (最前面多一個.),
應該可以嘗試用 ng init 來修復(我沒試過)。

3.package 安裝不完整,之前遇過網路問題導致下載不全,
透過 npm install 重新安裝。

4.package 版本衝突,之前遇過typescript、zone.js更新到最新版結果出錯,
一般我會先嘗試 npm upgrade 升級一次,這種修復機率不高,我還沒成功過,
再來就是降回舊版本,如果不知道版本號,可以透過CLI建立一個新專案再比對package.json。

1個讚

謝謝您詳細的解答,我們遇到的狀況是這樣。
我們專案開發者的版本是0.28(舊),
但是朋友版本是0.31(新)卻可以跑,他的做法是
=> (砍掉@angular cli 資料夾,複製自己新創的@angular資料夾蓋掉開發者專案就可以work),因為新的版本把東西都整合到@angular這個資料夾,並沒有@angular cli 的資料夾。
可是正式版1.02( 以同樣的方式去更改,卻會失敗)。

最後想請教一下,一般在團隊專案開發上遇到這種問題怎麼解決,
另外是不是在團隊開發前都需要將版本升至最新版讓所有人版本都一致
這樣錯誤的訊息會跟 angular cli安裝路徑位置不同以及版本有關嗎?

團隊開發時應該要依賴版本控制來維護,版上有很多大神有豐富的實務經驗。
之前社團小聚也有類似主題:
活用 Angular 模組機制:在多個專案間共用程式碼的技巧
優化 Angular 團隊開發流程:實現 DevOps 開發維運一體化

一般來說團隊開發鐵定會利用版控
我想他的意思是應該是
今天Clone下來的專案無法使用ng serve 部署到local端
因為AngularCli版本不一致
所以他應該是想問說 在這種情況下 一般來說是是會先將所有人的Angular CLI版本一致再進行開發嗎還是??

一律使用npm start 來啟動 ng serve,這樣子專案的環境就會跟開發機器的環境脫離。
即使所開發的專案 cli 版本與本機電腦上裝的版本不一樣,還是可以跑。

我拿以前測試的專案確實會出問題:
範例檔:demo_001

透過 ng serve 會出更新CLI的訊息

透過 npm start 可正常執行,所以如果 node_modules 內的檔案都在應該不會有太大問題

刪除 node_modules 資料夾,重新透過 npm install 安裝


出現找不到Python

出現要求安裝 .NET Framework 2.0 SDK

執行 npm start 出現錯誤

透過 ng serve 執行,一樣出現CLI升級提示

依指示移除與安裝

重新執行 ng serve,出現找不到 @angular/compiler-cli


查看 \node_modules@ngtools\webpack\src\index.js,應該是比對@angular/compiler-cli 版本時出錯

安裝 @angular/compiler-cli

仍然出現錯誤

將 e 輸出

出現關鍵字 Private,應該是 TypeScript 問題

升級 TypeScript

做到這邊,這種方式應該不是正確方式,感覺建一個新專案再把 src 資料夾複製過去問題應該比較簡單。