summaryrefslogtreecommitdiff
path: root/scripts/dev.mjs
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-07-08 13:03:31 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-07-08 13:03:31 +0900
commit644023316e85ed9d238007ef6b2177e25c98cf9a (patch)
tree89b217421aac93e580a1af1f431cf6e0cebade94 /scripts/dev.mjs
parenttweak localization (diff)
downloadsharkey-644023316e85ed9d238007ef6b2177e25c98cf9a.tar.gz
sharkey-644023316e85ed9d238007ef6b2177e25c98cf9a.tar.bz2
sharkey-644023316e85ed9d238007ef6b2177e25c98cf9a.zip
refactor: use esm
Diffstat (limited to 'scripts/dev.mjs')
-rw-r--r--scripts/dev.mjs68
1 files changed, 68 insertions, 0 deletions
diff --git a/scripts/dev.mjs b/scripts/dev.mjs
new file mode 100644
index 0000000000..0b07ae80cb
--- /dev/null
+++ b/scripts/dev.mjs
@@ -0,0 +1,68 @@
+import fs from 'node:fs';
+import { dirname } from 'node:path';
+import { fileURLToPath } from 'node:url';
+import { execa } from 'execa';
+
+const _filename = fileURLToPath(import.meta.url);
+const _dirname = dirname(_filename);
+
+await execa('pnpm', ['clean'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+await execa('pnpm', ['build-pre'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+execa('pnpm', ['exec', 'gulp', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+execa('pnpm', ['--filter', 'backend', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+execa('pnpm', ['--filter', 'frontend', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+execa('pnpm', ['--filter', 'sw', 'watch'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+});
+
+const start = async () => {
+ try {
+ const stat = fs.statSync(_dirname + '/../packages/backend/built/boot/index.js');
+ if (!stat) throw new Error('not exist yet');
+ if (stat.size === 0) throw new Error('not built yet');
+
+ const subprocess = await execa('pnpm', ['start'], {
+ cwd: _dirname + '/../',
+ stdout: process.stdout,
+ stderr: process.stderr,
+ });
+
+ // なぜかworkerだけが終了してmasterが残るのでその対策
+ process.on('SIGINT', () => {
+ subprocess.kill('SIGINT');
+ process.exit(0);
+ });
+ } catch (e) {
+ await new Promise(resolve => setTimeout(resolve, 3000));
+ start();
+ }
+};
+
+start();