Files
medusa-store/packages/medusa/src/commands/develop.js
2022-04-14 10:09:40 +02:00

46 lines
1.2 KiB
JavaScript

import path from "path"
import { execSync } from "child_process"
import spawn from "cross-spawn"
import chokidar from "chokidar"
import Logger from "../loaders/logger"
export default async function({ port, directory }) {
const args = process.argv
args.shift()
args.shift()
args.shift()
const babelPath = path.join(directory, "node_modules", ".bin", "babel")
execSync(`${babelPath} src -d dist`, {
cwd: directory,
stdio: ["ignore", process.stdout, process.stderr],
})
const cliPath = path.join(directory, "node_modules", ".bin", "medusa")
let child = spawn(cliPath, [`start`, ...args], {
cwd: directory,
env: process.env,
stdio: ["pipe", process.stdout, process.stderr],
})
chokidar.watch(`${directory}/src`).on("change", file => {
const f = file.split("src")[1]
Logger.info(`${f} changed: restarting...`)
child.kill("SIGINT")
execSync(`${babelPath} src -d dist --extensions \".ts,.js\"`, {
cwd: directory,
stdio: ["pipe", process.stdout, process.stderr],
})
Logger.info("Rebuilt")
child = spawn(cliPath, [`start`, ...args], {
cwd: directory,
env: process.env,
stdio: ["pipe", process.stdout, process.stderr],
})
})
}