mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-10 00:05:27 +00:00
feat(cli): drop default proxy in flow folders, open browser, add --no-browser
Manual `wmill dev` in a flow folder should not implicitly enable the reverse proxy. Both proxy and legacy modes now open the browser; the new --no-browser flag opts out. Claude Code launch.json templates pass --no-browser so the IDE preview doesn't fight a system browser window. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
c36e6a002d
commit
b57ec80fd1
+23
-13
@@ -108,6 +108,7 @@ function restorePathScripts(flowValue: any) {
|
||||
export interface DevOpts {
|
||||
proxyPort?: number;
|
||||
path?: string;
|
||||
noBrowser?: boolean;
|
||||
}
|
||||
|
||||
export async function dev(opts: GlobalOptions & SyncOptions & DevOpts) {
|
||||
@@ -146,7 +147,6 @@ export async function dev(opts: GlobalOptions & SyncOptions & DevOpts) {
|
||||
} else {
|
||||
opts.path = relPath;
|
||||
}
|
||||
opts.proxyPort = opts.proxyPort ?? 3100;
|
||||
log.info(`Detected flow folder, path: ${opts.path}`);
|
||||
process.chdir(workspaceRoot);
|
||||
}
|
||||
@@ -515,6 +515,22 @@ export async function dev(opts: GlobalOptions & SyncOptions & DevOpts) {
|
||||
});
|
||||
}
|
||||
|
||||
function maybeOpenBrowser(url: string) {
|
||||
if (opts.noBrowser) return;
|
||||
try {
|
||||
open.default(url).catch((error) => {
|
||||
console.error(
|
||||
`Failed to open browser, please navigate to ${url}, error: ${error}`
|
||||
);
|
||||
});
|
||||
console.log(`Opened browser at ${url}`);
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`Failed to open browser, please navigate to ${url}, ${error}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// --- Reverse proxy (when --proxy-port is set) ---
|
||||
|
||||
async function startProxyServer(proxyPort: number) {
|
||||
@@ -629,6 +645,7 @@ export async function dev(opts: GlobalOptions & SyncOptions & DevOpts) {
|
||||
return new Promise<void>((resolve) => {
|
||||
proxyServer.listen(proxyPort, () => {
|
||||
console.log(`Dev proxy listening on http://localhost:${proxyPort}`);
|
||||
maybeOpenBrowser(`http://localhost:${proxyPort}/`);
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
@@ -651,18 +668,7 @@ export async function dev(opts: GlobalOptions & SyncOptions & DevOpts) {
|
||||
(opts.path ? `&path=${opts.path}` : "");
|
||||
|
||||
console.log(`Go to ${url}`);
|
||||
try {
|
||||
open.default(url).catch((error) => {
|
||||
console.error(
|
||||
`Failed to open browser, please navigate to ${url}, error: ${error}`
|
||||
);
|
||||
});
|
||||
console.log("Opened browser for you");
|
||||
} catch (error) {
|
||||
console.error(
|
||||
`Failed to open browser, please navigate to ${url}, ${error}`
|
||||
);
|
||||
}
|
||||
maybeOpenBrowser(url);
|
||||
|
||||
console.log(
|
||||
"Dev server will automatically point to the last script edited locally"
|
||||
@@ -702,6 +708,10 @@ const command = new Command()
|
||||
"--path <path:string>",
|
||||
"Watch a specific windmill path (e.g., u/admin/my_script or f/my_flow)"
|
||||
)
|
||||
.option(
|
||||
"--no-browser",
|
||||
"Do not open the browser automatically"
|
||||
)
|
||||
.action(dev as any);
|
||||
|
||||
export default command;
|
||||
|
||||
@@ -744,7 +744,7 @@ export async function bootstrap(
|
||||
configurations: [{
|
||||
name: "windmill",
|
||||
runtimeExecutable: "bash",
|
||||
runtimeArgs: ["-c", "wmill dev --proxy-port ${PORT:-4000}"],
|
||||
runtimeArgs: ["-c", "wmill dev --proxy-port ${PORT:-4000} --no-browser"],
|
||||
port: 4000,
|
||||
autoPort: true,
|
||||
}],
|
||||
|
||||
@@ -282,7 +282,7 @@ async function initAction(opts: InitOptions) {
|
||||
configurations: [{
|
||||
name: "windmill",
|
||||
runtimeExecutable: "bash",
|
||||
runtimeArgs: ["-c", "wmill dev --proxy-port ${PORT:-4000}"],
|
||||
runtimeArgs: ["-c", "wmill dev --proxy-port ${PORT:-4000} --no-browser"],
|
||||
port: 4000,
|
||||
autoPort: true,
|
||||
}],
|
||||
|
||||
@@ -5335,6 +5335,7 @@ Launch a dev server that watches for local file changes and auto-pushes them to
|
||||
- \`--includes <pattern...:string>\` - Filter paths givena glob pattern or path
|
||||
- \`--proxy-port <port:number>\` - Port for a localhost reverse proxy to the remote Windmill server
|
||||
- \`--path <path:string>\` - Watch a specific windmill path (e.g., u/admin/my_script or f/my_flow)
|
||||
- \`--no-browser\` - Do not open the browser automatically
|
||||
|
||||
### docs
|
||||
|
||||
|
||||
Reference in New Issue
Block a user