diff --git a/packages/web/src/executors/file-server/file-server.impl.ts b/packages/web/src/executors/file-server/file-server.impl.ts index da3ea335a0982..b6beda5dbb791 100644 --- a/packages/web/src/executors/file-server/file-server.impl.ts +++ b/packages/web/src/executors/file-server/file-server.impl.ts @@ -1,5 +1,5 @@ import { exec, execSync } from 'child_process'; -import { ExecutorContext, joinPathFragments, logger } from '@nrwl/devkit'; +import { ExecutorContext, joinPathFragments } from '@nrwl/devkit'; import ignore from 'ignore'; import { readFileSync } from 'fs'; import { Schema } from './schema'; @@ -26,6 +26,12 @@ function getHttpServerArgs(options: Schema) { if (options.proxyUrl) { args.push(`-P ${options.proxyUrl}`); } + + if (options.proxyOptions) { + Object.keys(options.proxyOptions).forEach((key) => { + args.push(`--proxy-options.${key}`, options.proxyOptions[key]); + }); + } return args; } diff --git a/packages/web/src/executors/file-server/schema.d.ts b/packages/web/src/executors/file-server/schema.d.ts index dc6a2afe50594..770074bbc4cb7 100644 --- a/packages/web/src/executors/file-server/schema.d.ts +++ b/packages/web/src/executors/file-server/schema.d.ts @@ -9,4 +9,5 @@ export interface Schema { parallel: boolean; maxParallel?: number; withDeps: boolean; + proxyOptions?: object; } diff --git a/packages/web/src/executors/file-server/schema.json b/packages/web/src/executors/file-server/schema.json index c4c2529c24aa0..8758f4838b239 100644 --- a/packages/web/src/executors/file-server/schema.json +++ b/packages/web/src/executors/file-server/schema.json @@ -49,6 +49,18 @@ "proxyUrl": { "type": "string", "description": "URL to proxy unhandled requests to." + }, + "proxyOptions": { + "type": "object", + "description": "Options for the proxy used by http-server", + "default": {}, + "properties": { + "secure": { + "type": "boolean", + "default": false + } + }, + "additionalProperties": true } }, "additionalProperties": false,