內容概要:遠程同步代碼,將本地代碼實時保存到同一局域網內的另一台電腦(linux系統)
工具:VScode,SFTP插件
解決問題:以前的SFTP插件同步失敗,顯示找不到文件
一些廢話:這段時間因為項目需要且資源有限,我必須在本地完成代碼后使用同一局域網內另一台電腦的環境和硬件進行代碼測試(我的電腦是win,需要在linux上跑代碼,且我的電腦沒有顯卡)。一開始我是寫完一個源文件用win的cmd進行sftp連接,然后再put過去,但是代碼越寫越多,要穿的文件越來越多,並且有一點小改動就要重傳再測試,非常麻煩,於是就想用vscode的sftp插件實時同步,但是發現總是報錯:找不到文件。百度了好久才發現問題所在。
正文:
一、解決原來sftp插件同步失敗的問題
vscode更新以后原來用的sftp插件沒法用了,就是這個:
可能是vscode更新之后的bug,而且這個插件的作者好像不再更新了,然后再github上找到了有人給這個插件項目寫的分支,在vscode的擴展商店也有這個分支插件:
只要禁用原來的插件,下載這個作者的sftp插件並啟用,不用重新配置,原來的配置是完全適用的,然后重啟vscode,就能夠遠程實時同步本地代碼到另一台電腦或服務器啦。
二、如何配置sftp插件
可能有些人剛剛上手VScode,對vscode的插件配置還不太熟悉,而你又着急要實時遠程同步代碼,那你可以參照以下步驟和配置:
1.打開vscode側邊欄的這個圖標(應用商店):,搜索sftp,下載上文說的“Natizyskunk”作者的SFTP插件,點擊安裝。
2.按下ctr+shift+p,在頂欄彈框中找到SFTP:Config,選中並點擊回車,時你的項目根目錄下就會生成一個sftp.json文件,如下:
3.進入這個json文件,輸入如下配置:
{ "name": "My Server", "host": "xxx.xxx.xx.xxx", #你要連接的另一台電腦或服務器的地址 "protocol": "sftp", #也可以用ftp方式 "port": 22, #如果是sftp方式,默認端口是22;如果是ftp方式,默認端口是21 "username": "xxx", #遠程的那台電腦(或服務器)的名稱。比如遠程的電腦是linux系統,系統的登錄名是kkk,那你這里就應該填kkk "password": "xxx", #遠程的那台電腦(或服務器)的用戶登錄密碼。也就是用戶kkk的密碼 "remotePath": "/home/workspace/project", #你項目想要存放的位置(是遠程的那台電腦上的路徑),必須是絕對路徑。 "uploadOnSave": true, #代碼保存時是否同步更新上傳到遠程電腦 "downloadOnOpen":false, #填false就行 "watcher": { #監視 "files": "*", #監視項目根目錄下所有文件是否更改。當然如果有需要你也可以把這里的值改成項目中某個文件或文件夾的相對路徑,這樣你的項目代碼中只有你指定的文件或文件夾會被同步到遠程 "autoUpload": true, #有更新操作時,遠程自動更新。照填就行 "autoDelete": true, #有刪除操作時遠程自動刪除。照填就行 } }
4.配置完成之后保存,重啟vscode就可以生效了。
注意:sftp.json文件會自動創建在項目的.vscode文件夾中,.vscode文件夾在那個項目里面,該同步效果就對哪個項目生效,並不是全局的
5.使用方法:
①當你對項目中某個文件里的代碼進行更改后,按下ctr+s即可同步到遠程,你可以看看vscode界面的坐下角有顯示某個文件正在上傳
②當你在本地增加某個代碼文件后,你可以在左側的項目目錄空白處點擊右鍵,點擊sync local ->remote,遠程就會多一個你剛剛添加的文件
②當你修改你的項目結構時(比如你增加了一個文件夾),你可以在左側項目目錄的空白處點擊右鍵,點擊upload folder,這樣你新建的文件夾也會同步過去
補充1:你在右鍵時或許會看到如下選項,你可以按需使用:
sync both directions:將遠程和本地的代碼同步至二者一致
sync remote ->local:將遠程代碼同步到本地
download folder:將遠程文件夾同步到本地
****這些選項,可以讓你在比如本地代碼誤刪、遠程端添加了項目文件等情況下,從遠程拷貝項目到本地
補充2:
當你的sftp.json文件生效時,你會在vscode的左側看到這樣的圖標:
點進這個圖標你可以看到你在遠程同步的項目,你在本地時,對這個圖標里的文件有只讀權,不能更改。
參考文獻:
https://github.com/liximomo/vscode-sftp/wiki/Common-Config#downloadonopen
https://www.z01.com/help/web/3554.shtml