SHAREVOX のエディターです。
(エンジンは SHAREVOX ENGINE 、 コアは SHAREVOX CORE 、 全体構成は こちら に詳細があります。)
こちらは開発用のページになります。利用方法に関してはSHAREVOX 公式サイト をご覧ください。
SHAREVOX のエディタは Electron・TypeScript・Vue・Vuex などが活用されており、全体構成がわかりにくくなっています。
コードの歩き方で構成を紹介しているので、開発の一助になれば幸いです。
Issue を解決するプルリクエストを作成される際は、別の方と同じ Issue に取り組むことを避けるため、 Issue 側で取り組み始めたことを伝えるか、最初に Draft プルリクエストを作成してください。
SHAREVOX Community Discord サーバーにて、開発の議論や雑談を行っています。気軽にご参加ください。
UX・UI デザインの方針をご参照ください。
.node-version に記載されているバージョンの Node.js をインストールしてください。
Node.js の管理ツール (nvsやVoltaなど)を利用すると簡単にインストールでき、Node.js の自動切り替えもできます。
Node.js をインストール後、このリポジトリ を
Fork して git clone
し、次のコマンドを実行してください。
yarn install
.env.production
をコピーして.env
を作成し、VITE_DEFAULT_ENGINE_INFOS
内のexecutionFilePath
にsharevox_engine
のフルパスを指定します。
製品版 SHAREVOX のディレクトリのパスを指定すれば動きます。
Windows の場合でもパスの区切り文字は\
ではなく/
なのでご注意ください。
また、macOS 向けのSHAREVOX.app
を利用している場合は/path/to/SHAREVOX.app/Contents/MacOS/run
を指定してください。
Linux の場合は、Releasesから入手できる tar.gz 版に含まれるrun
コマンドを指定してください。
AppImage 版の場合は$ /path/to/SHAREVOX.AppImage --appimage-mount
でファイルシステムをマウントできます。
SHAREVOX エディタの実行とは別にエンジン API のサーバを立てている場合はexecutionFilePath
を指定する必要はありません。
これは製品版 SHAREVOX を起動している場合もあてはまります。
また、エンジン API の宛先エンドポイントを変更する場合はVITE_DEFAULT_ENGINE_INFOS
内のhost
を変更してください。
yarn electron:serve
音声合成エンジンのリポジトリはこちらです https://github.com/SHAREVOX/sharevox_engine
yarn electron:build
yarn test:unit
yarn test-watch:unit # 監視モード
Electron の機能が不要な、UI や音声合成などの End to End テストを実行します。
yarn test:browser-e2e
yarn test-watch:browser-e2e # 監視モード
yarn test-watch:browser-e2e -- --headed # テスト中の UI を表示
Playwright を使用しているためテストパターンを生成することもできます。 ブラウザ版を起動している状態で以下のコマンドを実行してください。
npx playwright codegen http://localhost:5173/#/home --viewport-size=800,600
詳細は Playwright ドキュメントの Test generator を参照してください。
Electron の機能が必要な、エンジン起動・終了などを含めた End to End テストを実行します。
yarn test:electron-e2e
yarn test-watch:electron-e2e # 監視モード
# get licenses.json from sharevox_engine as engine_licenses.json
yarn license:generate -- -o sharevox_licenses.json
yarn license:merge -- -o public/licenses.json -i engine_licenses.json -i sharevox_licenses.json
コードのフォーマットを整えます。プルリクエストを送る前に実行してください。
yarn fmt
typos を使ってタイポのチェックを行っています。 typos をインストール した後
typos
でタイポチェックを行えます。
もし誤判定やチェックから除外すべきファイルがあれば
設定ファイルの説明 に従って_typos.toml
を編集してください。
TypeScript の型チェックを行います。 ※ 現在チェック方法は 2 種類ありますが、将来的に 1 つになります。
# .tsのみ型チェック
yarn typecheck
# .vueも含めて型チェック
# ※ 現状、大量にエラーが検出されます。
yarn typecheck:vue-tsc
Markdown の文法チェックを行います。
yarn markdownlint
ShellScript の文法チェックを行います。 インストール方法は こちら を参照してください。
shellcheck ./build/*.sh
音声合成エンジンが起動している状態で以下のコマンドを実行してください。
なお、2023/07/02 現在、openapi-generator の最新版にパッチを当てたものを使わないと更新できない状態になっています。
詳細はこちら
curl http://127.0.0.1:50025/openapi.json >openapi.json
npx openapi-generator-cli generate \
-i openapi.json \
-g typescript-fetch \
-o src/openapi/ \
--additional-properties "modelPropertyNaming=camelCase,supportsES6=true,withInterfaces=true,typescriptThreePlus=true"
yarn fmt
npm scripts の serve
や electron:serve
などの開発ビルド下では、ビルドに使用している vite で sourcemap を出力するため、ソースコードと出力されたコードの対応付けが行われます。
.vscode/launch.template.json
をコピーして .vscode/launch.json
を作成することで、開発ビルドを VS Code から実行し、デバッグを可能にするタスクが有効になります。
本ソフトウェアはLGPL v3でライセンスされています