We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
electronは製品版のみ、カレントディレクトリをアプリの場所に変えてます。
voicevox/src/backend/electron/main.ts
Line 126 in f19ef05
そもそもカレントディレクトリは変えないほうが本当は良いはず。 例えばvoicevox.exeをCLIで起動して、相対パスでプロジェクトファイルを指定したときなどにうまく動かないので。 ただそれをしたい機会が無視できるほど少ないから、理由があるならカレントディレクトリを移動しても良さそう。
voicevox.exe
直感的になる
カレントディレクトリを変えなくても問題なく動くコードにしないといけない
製品版でカレントディレクトリ=.exeの場所としたロジックが書かれてるのは、おそらくデフォルトエンジンの実行パスを決めるときだけ(本当???) 実際カレントディレクトリを変更するロジックが導入されたのはこのときで、導入理由はおそらくこれ。 cwdがインストールディレクトリにならず、エンジン起動時にENOENTを吐いていたのを修正(Firefoxのダウンロードタブから直で開くと、cwdがダウンロードフォルダになる?)
cwdがインストールディレクトリにならず、エンジン起動時にENOENTを吐いていたのを修正(Firefoxのダウンロードタブから直で開くと、cwdがダウンロードフォルダになる?)
実際.env.productionに書いてるデフォルトエンジンのパスはvv-engine/run.exeで相対パス。 そのパスの解決はカレントディレクトリからになってるので、カレントディレクトリの変更が必要になってる。
.env.production
vv-engine/run.exe
これはたぶん、カレントディレクトリを変えるのではなく、.envのパス指定でアプリディレクトリを指定可能にするのが良い気がする。 例えば{APP_DIR}/vv-engine/run.exeと指定して{APP_DIR}をリプレイスするとかで。
.env
{APP_DIR}/vv-engine/run.exe
{APP_DIR}
あるいはもう普通にデフォルトエンジンパス(=voicevox.exeのパス)からのパスとして解決しちゃう仕様でもそんなに問題なさそう。
かなり細かいことなのでそんな気にしなくても良い気がしますが、ちょっと考えてしまったのでとりあえず出力ということでissue作ってみました。。
ちなみに7zip.exeのパス指定も製品版のみ相対パス指定なのですが、こっちはちゃんとアプリのパスで解決してました。
voicevox/src/backend/electron/vvppFile.ts
Line 228 in f19ef05
The text was updated successfully, but these errors were encountered:
@sabonerune いつもすみません!! 製品版.exe実行時、.exeの場所をカレントディレクトリに変えないことによるバグってなにか思いついたりされますか・・・? 👀
@sevenc-nanashi カレントディレクトリを.exeの場所にしないこの案、そうすべきかすべきじゃないか意見あれば聞きたみです・・・!
Sorry, something went wrong.
@Hiroshiba 自分が考える限りはとくに思いつきません。
変える理由も変えない理由も特にないって気持ちです。
Successfully merging a pull request may close this issue.
内容
electronは製品版のみ、カレントディレクトリをアプリの場所に変えてます。
voicevox/src/backend/electron/main.ts
Line 126 in f19ef05
そもそもカレントディレクトリは変えないほうが本当は良いはず。
例えば
voicevox.exe
をCLIで起動して、相対パスでプロジェクトファイルを指定したときなどにうまく動かないので。ただそれをしたい機会が無視できるほど少ないから、理由があるならカレントディレクトリを移動しても良さそう。
Pros 良くなる点
直感的になる
Cons 悪くなる点
カレントディレクトリを変えなくても問題なく動くコードにしないといけない
実現方法
製品版でカレントディレクトリ=.exeの場所としたロジックが書かれてるのは、おそらくデフォルトエンジンの実行パスを決めるときだけ(本当???)
実際カレントディレクトリを変更するロジックが導入されたのはこのときで、導入理由はおそらくこれ。
cwdがインストールディレクトリにならず、エンジン起動時にENOENTを吐いていたのを修正(Firefoxのダウンロードタブから直で開くと、cwdがダウンロードフォルダになる?)
実際
.env.production
に書いてるデフォルトエンジンのパスはvv-engine/run.exe
で相対パス。そのパスの解決はカレントディレクトリからになってるので、カレントディレクトリの変更が必要になってる。
これはたぶん、カレントディレクトリを変えるのではなく、
.env
のパス指定でアプリディレクトリを指定可能にするのが良い気がする。例えば
{APP_DIR}/vv-engine/run.exe
と指定して{APP_DIR}
をリプレイスするとかで。あるいはもう普通にデフォルトエンジンパス(=voicevox.exeのパス)からのパスとして解決しちゃう仕様でもそんなに問題なさそう。
その他
かなり細かいことなのでそんな気にしなくても良い気がしますが、ちょっと考えてしまったのでとりあえず出力ということでissue作ってみました。。
ちなみに7zip.exeのパス指定も製品版のみ相対パス指定なのですが、こっちはちゃんとアプリのパスで解決してました。
voicevox/src/backend/electron/vvppFile.ts
Line 228 in f19ef05
The text was updated successfully, but these errors were encountered: