ユーザーが必要な場所で実行されていることを確認します.


PSG init


このプロジェクトの主な機能である「プロジェクト構造の作成」機能を使用するには、このコマンドを使用して、主な機能を使用するルールと必要な内容を含むメニュー・ユニットを生成する必要があります.
ただし、この場合、プロジェクトを開始する場所(プロジェクトの最上位パス)でプロジェクトを実行する必要があります.
メニューバーに、変なところでエラーが実行された場合、エラーが発生しないように実行すると書いてありますが、よく考えてみると、これは大きな話題です.

つまり、失敗しても、その機能のフォルダが作成されます.これにより、その後initが正常に動作しなくても実行できます.問題は、変な場所で実行しても、このフォルダを作成し続けることです.

解決策


ファイルをコピーするのは容易ではありませんか?


ファイルを既存のファイルにコピーする方法を確認します.どう考えても、ノード.jsからファイルをコピーする機能が実現したと思います.
そこで,この問題を解決する方法を探す過程で,copyFileの方法を理解した.

うん。基準経路はここではありませんか?


この方法でコピーしようとすると、エラーが発生し続けます.実際、copyFileメソッドに渡されるパスは、その関数を呼び出すファイルの位置を基準としていると思います.だから相対経路を./../../../../README.mdと書きます.
すると、エラーメッセージは"C:\\Users\\user\\README.md"と出力されるのではないでしょうか.いずれにしても、データムパスは私が働いているワークスペースのトップレベルのパスのようです.
したがって、この部分を使用してファイルをコピーする際にエラーが発生した場合、READMEになります.mdファイルがなくなったか、現在の実行パス異常が表示されます.

解決されたコード

const { copyFile } = require("fs").promises;

copyFile("./README.md", `${servicePath}/../README.txt`)
  .then(() => {
    if (existsSync(servicePath)) {
      printExceptionMessage(AlreadyServiceInit.message);
      return;
    }

    mkdir(servicePath, error => {
      if (error) {
        printExceptionMessage(InternalProgramError.message);
        return;
      }
      
      printSuccessMessage("Success: PSG init")
    })
    .catch(() => printExceptionMessage(`
      Error: Please check next conditions
      1. Did you delete the README.md that were in the library when you downloaded?
         In this case, you can redownload this libary, then you can solve.
      2. Did you enter this command at your project root directory?
    `));

振り返る


今回は偶然に解決しましたが、これからは私の知っている知識を通じて、私が直面した問題を解決するために、私はもっと努力して、偶然ではないと確信させます.
2021.04.16. 追加
Googleゲームをプレイしているうちに、これよりも解決しやすい方法が見つかりました.佳文と書かれたP-iknow(ピアノ)に感謝
path.resolve('')
// 이렇게 하면 현재 작업 중인 워킹 디렉토리를 얻을 수 있다.
path.discoverの動作方式によって、このような方式で得ることができます!Node.jsを書いて1年近く経ちましたが、まだこれらを知りません・・・歩く道が遠すぎるようです.