go module的工作區問題


1、問題描述

   這里啟用的是go module模式,在將一個目錄進行初始化后,該目錄下生成一個go.mod文件。當我試圖在該目錄下自定義包時(即創建一個子文件夾並新建.go文件),vscode給了以下錯誤提示:

  

gopls requires a module at the root of your workspace.
You can work with multiple modules by opening each one as a workspace folder.
Improvements to this workflow will be coming soon, and you can learn more here:
https://github.com/golang/tools/blob/master/gopls/doc/workspace.md.go list

 

2、問題分析

  進入提示中的地址:https://github.com/golang/tools/blob/master/gopls/doc/workspace.md

  了解到,go module模式分為兩種情況:

  1.一個模塊

    一個模塊就是指,該文件及其子目錄下,只有一個go.mod文件(這里需要注意的是,如果將包新建或移動到該目錄下,新的子目錄下雖然沒有go.mod文件,但go依然視之為一個module,此時就構成了嵌套)。

  2.多個模塊

    自 2021 年 1 月起,如果使用多個模塊或嵌套模塊,則需要為每個模塊創建一個“工作區文件夾”。這意味着每個模塊都有自己的范圍,並且功能不會跨模塊工作。

      3.開啟多模塊

    多模塊並非默認開啟的,因為目前依舊不夠完善,需要手動開啟。可以通過配置 experimentalWorkspaceModule 設置進行嘗試

 

3、問題解決

    

 

     

     編輯:將下面設置添加到文件中

"experimentalWorkspaceModule ":true,

    

   

 

 

 4、總結

  由於版本的不斷更新,隨着更加的規范化,很多舊版本不視為問題的問題都暴露了出來,這固然是一種進步,但學習的過程中也不免有了更多的挑戰。

 

 

參考:https://www.cnblogs.com/dliy/p/14832722.html

   https://github.com/golang/tools/blob/master/gopls/doc/workspace.md


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM