[英]VS Code Go extension fails to load due to it being unable to change go.mod?
這個問題似乎已經在Go 更新到 go.mod 中被問過,需要 -mod=readonly: packages.Load 錯誤但沒有回答,所以重新發布它。 運行 Go 1.15.7,我正在嘗試使用go.mod
加載 Go 項目,但 VS Code 顯示以下錯誤通知:
Error loading workspace: err: exit status 1: stderr: go: updates to go.mod needed, disabled by -mod=readonly : packages.Load error
似乎啟用了只讀模式,但我不確定如何禁用它。 我試過簡單地增加go.mod
的文件權限,
chmod a+w go.mod
但無濟於事。 知道如何解決此錯誤並允許加載 Go 擴展嗎?
此錯誤似乎已通過運行自行解決
go mod tidy
手動。 不過,我仍然很好奇是什么原因造成的,因為擴展可能仍未完全正常工作。
檢查問題部分或相應的go.mod
文件。 當檢測到此類問題時,gopls 會提供快速修復並提示如何解決這些問題。 如果沒有,那是一個錯誤。
您只需添加到您的settings.json
中即可輕松解決此問題。json 允許從范圍外模塊導入的 gopls 構建參數。
類似於以下內容:
{
"gopls": {
"build.allowModfileModifications": true
}
}
供參考: https://github.com/golang/vscode-go/blob/master/docs/settings.md#buildallowmodfilemodifications
還有一點上下文:
In Go 1.16, the Go command will no longer modify user's go.mod and go.sum files automatically ( https://tip.golang.org/doc/go1.16#tools ). 為了匹配此行為,gopls 現在在運行 go 命令時也使用 -mod=readonly。 go 命令報告的任何錯誤都將顯示建議的修復程序,以對 go.mod 或 go.sum 文件進行必要的修復。 因此,當您的 go.mod 或 go.sum 文件中有錯誤時,您的工作區可能位於部分損壞的 state 中。 golang/go#42266 將緩解此問題,但可能要到 2 月才能解決。
不推薦:如果您必須選擇退出此行為,您可以將 allowModfileModifications 配置設置為 true。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.