簡體   English   中英

VS Code Go 擴展無法加載,因為它無法更改 go.mod?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM