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 d0b0ba16cb8e02..0c4fab73ed5034 100644 --- a/packages/web/src/executors/file-server/file-server.impl.ts +++ b/packages/web/src/executors/file-server/file-server.impl.ts @@ -1,10 +1,10 @@ -import { exec, execSync } from 'child_process'; import { ExecutorContext, joinPathFragments } from '@nrwl/devkit'; -import ignore from 'ignore'; +import { workspaceLayout } from '@nrwl/workspace/src/core/file-utils'; +import { exec, execSync } from 'child_process'; +import { watch } from 'chokidar'; import { readFileSync } from 'fs'; +import ignore from 'ignore'; import { Schema } from './schema'; -import { watch } from 'chokidar'; -import { workspaceLayout } from '@nrwl/workspace/src/core/file-utils'; function getHttpServerArgs(options: Schema) { const args = ['-c-1']; @@ -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 dc6a2afe50594d..770074bbc4cb75 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 beeffe5567d91e..51b87223f686e5 100644 --- a/packages/web/src/executors/file-server/schema.json +++ b/packages/web/src/executors/file-server/schema.json @@ -48,6 +48,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,