IoT開發的利器,pi-sync

前言

本透明最近一掃2017年的陰霾,心情大好。趁著上次發布Dev Service Runner的餘威,繼續向npm整理髮布幾年來工作之餘開發的工具。

這次的包叫做pi-sync,是為了解決曾經在開發Raspberry Pi程序時,調試需要隨時上傳文件到單片機上的問題而開發的。開發時借鑒了很多docker-sync的想法。

安裝運行

# 安裝到project下nnpm i -D pi-syncn$(npm bin)/pi-sync [options]n# 直接運行nnpx pi-sync [options]nn## 需要6.0以上版本的node.jsn

設置

可以直接帶參數運行,也可設置pi-sync.conf.yml到project的根目錄下運行。

同時具有參數和pi-sync.conf.yml時,參數內容優先起作用。

參數一覽

Usage: pi-sync [options]nn Options:nn -V, --version 列印版本號n -w, --watch 監視文件變化,有變化時同步(開啟監視時不會自動同步所有文件)n -H, --host <host> 單片機的 SSH host namen -p, --port <port> SSH 埠號n -a, --account <account> SSH 用戶名n -P, --pass <pass> SSH 密碼n -k, --key <key> SSH 私鑰的路徑(密碼與私鑰只需一個)n -r, --remote <remote> 單片機上目標文件夾,需要絕對路徑n -s, --safe 安全模式上傳,在上傳量較大時推薦n -h, --help 列印幫助nn Examples:nn $ pi-sync --helpn $ pi-sync -H pi@192.168.1.1:22 -k PATH/TO/KEYn $ pi-sync -H pi@192.168.1.1:22 -P raspberryn $ pi-sync -H 192.168.1.1 -p 22 -a pi -P raspberryn $ pi-sync -w -H pi@192.168.1.1:22 -P raspberryn $ pi-sync -w -H 192.168.1.1 # use pi@HOSTNAME:22, pw: raspberry by defaultn $ pi-sync -s -H 192.168.1.1 -r /home/pi/Documents/PROJECTn

pi-sync.conf.yml示例

# NOTE: This sample configs could not used directlynnconnection: # 連接設置nhost: 192.168.x.xx # 必須nport: 22 # 可選, 默認 22nusername: pi # 可選, 默認為pinpassword: raspberry # 可選, 默認為raspberryn# privateKey: PATH/TO/KEY # 可選, password和privateKey二者需有其一nreadyTimeout: 10000 # 可選, SSH握手等待時間nntransport: # 傳輸設置nremotePath: ~/pi-sync # 可選, 默認為$HOME下的同名文件夾nlocalPath: ~/my-git/pi-sync # 可選, 默認為當前文件夾nexecBefore: npm install # 可選, 在傳輸前執行的命令nexecAfter: npm run build # 可選, 在傳輸後執行的命令npolling: 1500 # 可選, 為了提高傳輸效率,在 --watch 模式下,程序會在文件改動發生後暫存改動,等待一段時間後一併上傳, 默認為1500msnsafeMode: false # 可選, 使用安全模式上傳,速度較慢(大約是普通模式的5倍耗時),在有大量改動需要一次性上傳時推薦使用,默認為 falsennignore: # 可選, 忽略文件, 追加忽略.gitignore未提及的文件n- readme.mdnninclude: # 可選, 包含文件, 追加包含被.gitignore忽略的文件n- IM-IN-GITIGNORE.ymln

示例

一次性同步本地的 pi-sync 到單片機 pi@192.168.3.86:22 上的 /home/pi/Documents/pi-sync ,使用安全模式。

監視本地 pi-sync 的改動並按照 pi-sync.conf.yml 的規則同步更改.

希望對大家有所幫助。

推薦閱讀:

Facebook 發布了新的 Node 模塊管理器 Yarn,或將取代 npm 客戶端
npx: npm 5.2.0 內置的包執行器
npm的應用場景,剛需在何處?簡單的寫寫頁面是否需要npm包管理工具?
npm install 生成的package-lock.json是什麼文件?有什麼用?
為什麼 npm 要為每個項目單獨安裝一遍 node_modules?

TAG:树莓派RaspberryPi | npm | 物联网 |