本来の意図このツールを作った理由は、コンピューターを使用しているときにいつでも毎日の仕事や生活を記録できるようにするためです。通常は簡単に記録するだけです。こうすることで、自宅と職場で同時に記録を見ることができます。 こうすることで、後で整理するときに、いくつかのキーワードを見ると、特定のことを思い出すことができます。そのうちのいくつかは、将来記事にまとめるための下書きとして使用することもできます。このようにして、記事に始まりと終わりを持たせることができます。そうしないと、思いついたことをそのまま言うと、記事を書くのに非常に不利になります。 最初は手動で同期していましたが、面倒だったのでバッチファイルを使って一気に同期することにしました。
しかし、まだいくつかの欠点があります。 1. 特に仕事が終わってすぐにコンピューターの電源を切るときなどは、同期を忘れてしまうことがあります。 2. 最初に同期を忘れると、後で git の競合が発生します。あまり良い経験ではありませんでした。 プログラムを書くNodejs と git は、デフォルトでコンピューターにインストールされている必要があります。 なぜなら、後で時間をかけて小さなプログラムを書くからです。プログラムをバックグラウンドで実行している限り、ドキュメントは定期的に自動的に同期されます。 変更されたローカル コンテンツは、git リポジトリに自動的に同期されます。git リポジトリ コンテンツが変更されると、最新のコンテンツが自動的にプルされ、ローカルに同期されます。これにより、リモート リポジトリとローカルが最新の状態になり、2 台のコンピューターのコンテンツが直接同期されます。 nodejs を使用して実装する方法を見てみましょう。 まず、データを保存するための Git リポジトリが必要です。 gitee.com にアクセスして、倉庫開設を申請してください。作成後、リモート倉庫のアドレスを取得し、後で使用するためにコピーします。 ドキュメントデータを同期するためのローカル フォルダーを作成します。 ファイル内で リモート リポジトリをバインドするには: git init #倉庫を初期化するgit remote add origin [倉庫のアドレス] git プッシュ元 git push --set-upstream origin master #ウェアハウスの最初の同期 その後、ツールを直接実行できます。 フォルダに新しいファイルindex.jsを追加します フォルダ内の依存パッケージをインストールする 糸にchild_processを追加 糸追加アイコンv-lite 糸を追加する瞬間 index.js にコードを記述します。 定数 child_process = require("child_process"); const iconv = require("iconv-lite"); 定数 moment = require("moment"); 定数エンコーディング = "cp936"; const binaryEncoding = "バイナリ"; //cmdコマンドの行を実行する function cmd(text) { 新しい Promise を返します ((resolve, reject) => { 子プロセス.exec( 文章、 { エンコーディング: バイナリエンコーディング }, (エラー = "", 標準出力 = "", 標準エラー出力) => { もし(エラー){ 解決(エラー); 戻る; } 解決します(iconv.decode(Buffer.from(stdout, binaryEncoding), encoding)); } ); }); } //cmd 実行順序 async function run() { const time = moment().format("YYYY-MM-DD HH:mm:ss"); status = cmd("git status") を待機します。 もし ( ステータス.includes( 「git リポジトリ (または親ディレクトリのいずれか) ではありません: .git」 ) ){ //ディレクトリはgitアドレスにバインドされていません console.log("ディレクトリはgitアドレスにバインドされていません"); } それ以外 { //gitにバインド //プル const pull = await cmd("git pull"); もし ( !pull.includes("すでに最新です") && !pull.includes("すでに最新です") ){ // 最新データを取得します console.log(`最新データを取得します: ${time}`); } //ステータス status = await cmd("git status"); if (status.includes('(use "git add"')) { //ローカル コンテンツが変更されたため、送信する必要があります await cmd("git add ."); cmd('git commit -m "sync"') を待機します。 cmd("git push") を待機します。 console.log(`同期が成功しました: ${time}`); } } } //30秒ごとに実行 setInterval(() => { 走る(); }, 1000 * 30); 走る(); これは、現在のディレクトリではなく、指定されたディレクトリ内のファイルを同期したいため、機能しません。したがって、指定されたディレクトリを同期するには、それを exe ファイルにパッケージ化し、同期する必要があるフォルダーに配置する必要があります。 まず、依存パッケージをグローバルにインストールします: pkg npm インストール -g pkg 次に、ツール ディレクトリで実行します。 pkg -t win index.js nodejs プロジェクトを独立した exe プログラムにパッケージ化し、その exe プログラムを git 同期が必要なディレクトリに配置できます。 さらに、このexeファイルをウェアハウスに同期させないようにするには、このファイルを除外する必要があります。 同期ディレクトリに.gitignoreファイルを置き、exeファイルを削除する行を追加します。 このパッケージファイル: http://xiazai.jb51.net/202112/yuanma/indexdat_jb51.rar この設定ファイル: http://xiazai.jb51.net/202112/yuanma/gitignore_jb51.rar コンピュータの電源を入れた後すぐにプログラムを起動できるようにするために、プログラムをスタートアップ項目に入れます。 フォルダを開き、このパスをフォルダに貼り付けてEnterキーを押します
このファイルのショートカットをスタートアップ項目に配置すると、コンピューターの電源投入時に同期が実行され、常時同期が実現します。 30 秒ごとに最新かどうかを確認します。 これで、gitee に自動的に同期する nodejs のドキュメント同期ツールを作成する方法についての記事は終了です。関連する nodejs ドキュメント同期ツールのコンテンツの詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM を応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Firefox で Flash を再生するためのオブジェクトとパラメータの書き方
目次質問1. webpack webpack-cliをインストールする2. webpackのバージョ...
ブラウザベンダーが標準を曲げて、ルールに従わないことをすると、問題や少なくとも混乱が生じる可能性があ...
既存のビデオ プレーヤーがニーズを満たせない場合は、ビデオを自分でカプセル化する必要があります。ビデ...
JS のクラスの定義や継承は本当に多様なので、別のノートブックを開いて記録しておきます。意味オブジェ...
過去 2 日間、ワークベンチが Alibaba Cloud Server に接続できない問題を解決す...
<marquee> タグはペアで表示されるタグです。最初のタグ <marquee...
前提条件Windows Server でコンテナーを実行するには、Windows Server (半...
<テンプレート> <div id="ルート"> <...
目次MySQL スレーブ ライブラリ Seconds_Behind_Master 遅延の概要1. 遅...
top コマンドは、Linux システムのパフォーマンスを監視するために誰もが使用している最適なコマ...
1. MySQL 自己接続MySQL では、情報を照会するときに自分自身に接続 (自己接続) する必...
序文DBA として、仕事中に MySQL マスターとスレーブの同期遅延の問題に遭遇することがよくあり...
この記事では、接続エラー ECONNREFUSED を例に、Node.js がエラーを処理するプロセ...
目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...
この記事では、大画面ページのスクリーンアダプテーションを実現するためのVueの具体的なコードを参考ま...