UNPKG

9.77 kBJSONView Raw
1{
2 "$schema": "http://json-schema.org/draft-07/schema",
3 "$id": "BuildCustomWebpackServerSchema",
4 "title": "Custom webpack server schema for Build Facade",
5 "type": "object",
6 "properties": {
7 "main": {
8 "type": "string",
9 "description": "The name of the main entry-point file."
10 },
11 "tsConfig": {
12 "type": "string",
13 "default": "tsconfig.app.json",
14 "description": "The name of the TypeScript configuration file."
15 },
16 "inlineStyleLanguage": {
17 "description": "The stylesheet language to use for the application's inline component styles.",
18 "type": "string",
19 "default": "css",
20 "enum": [
21 "css",
22 "less",
23 "sass",
24 "scss"
25 ]
26 },
27 "stylePreprocessorOptions": {
28 "description": "Options to pass to style preprocessors",
29 "type": "object",
30 "properties": {
31 "includePaths": {
32 "description": "Paths to include. Paths will be resolved to workspace root.",
33 "type": "array",
34 "items": {
35 "type": "string"
36 },
37 "default": []
38 }
39 },
40 "additionalProperties": false
41 },
42 "optimization": {
43 "description": "Enables optimization of the build output. Including minification of scripts and styles, tree-shaking and dead-code elimination. For more information, see https://angular.io/guide/workspace-config#optimization-configuration.",
44 "x-user-analytics": 16,
45 "default": true,
46 "oneOf": [
47 {
48 "type": "object",
49 "properties": {
50 "scripts": {
51 "type": "boolean",
52 "description": "Enables optimization of the scripts output.",
53 "default": true
54 },
55 "styles": {
56 "type": "boolean",
57 "description": "Enables optimization of the styles output.",
58 "default": true
59 }
60 },
61 "additionalProperties": false
62 },
63 {
64 "type": "boolean"
65 }
66 ]
67 },
68 "fileReplacements": {
69 "description": "Replace compilation source files with other compilation source files in the build.",
70 "type": "array",
71 "items": {
72 "$ref": "#/definitions/fileReplacement"
73 },
74 "default": []
75 },
76 "outputPath": {
77 "type": "string",
78 "description": "Path where output will be placed."
79 },
80 "resourcesOutputPath": {
81 "type": "string",
82 "description": "The path where style resources will be placed, relative to outputPath.",
83 "default": ""
84 },
85 "sourceMap": {
86 "description": "Output source maps for scripts and styles. For more information, see https://angular.io/guide/workspace-config#source-map-configuration.",
87 "default": false,
88 "oneOf": [
89 {
90 "type": "object",
91 "properties": {
92 "scripts": {
93 "type": "boolean",
94 "description": "Output source maps for all scripts.",
95 "default": true
96 },
97 "styles": {
98 "type": "boolean",
99 "description": "Output source maps for all styles.",
100 "default": true
101 },
102 "hidden": {
103 "type": "boolean",
104 "description": "Output source maps used for error reporting tools.",
105 "default": false
106 },
107 "vendor": {
108 "type": "boolean",
109 "description": "Resolve vendor packages source maps.",
110 "default": false
111 }
112 },
113 "additionalProperties": false
114 },
115 {
116 "type": "boolean"
117 }
118 ]
119 },
120 "deployUrl": {
121 "type": "string",
122 "description": "URL where files will be deployed.",
123 "x-deprecated": "Use \"baseHref\" browser builder option, \"APP_BASE_HREF\" DI token or a combination of both instead. For more information, see https://angular.io/guide/deployment#the-deploy-url."
124 },
125 "verbose": {
126 "type": "boolean",
127 "description": "Adds more details to output logging.",
128 "default": false
129 },
130 "progress": {
131 "type": "boolean",
132 "description": "Log progress to the console while building.",
133 "default": true
134 },
135 "i18nMissingTranslation": {
136 "type": "string",
137 "description": "How to handle missing translations for i18n.",
138 "enum": [
139 "warning",
140 "error",
141 "ignore"
142 ],
143 "default": "warning"
144 },
145 "i18nDuplicateTranslation": {
146 "type": "string",
147 "description": "How to handle duplicate translations for i18n.",
148 "enum": [
149 "warning",
150 "error",
151 "ignore"
152 ],
153 "default": "warning"
154 },
155 "localize": {
156 "description": "Translate the bundles in one or more locales.",
157 "oneOf": [
158 {
159 "type": "boolean",
160 "description": "Translate all locales."
161 },
162 {
163 "type": "array",
164 "description": "List of locales ID's to translate.",
165 "minItems": 1,
166 "items": {
167 "type": "string",
168 "pattern": "^[a-zA-Z]{2,3}(-[a-zA-Z]{4})?(-([a-zA-Z]{2}|[0-9]{3}))?(-[a-zA-Z]{5,8})?(-x(-[a-zA-Z0-9]{1,8})+)?$"
169 }
170 }
171 ]
172 },
173 "outputHashing": {
174 "type": "string",
175 "description": "Define the output filename cache-busting hashing mode.",
176 "default": "none",
177 "enum": [
178 "none",
179 "all",
180 "media",
181 "bundles"
182 ]
183 },
184 "deleteOutputPath": {
185 "type": "boolean",
186 "description": "Delete the output path before building.",
187 "default": true
188 },
189 "preserveSymlinks": {
190 "type": "boolean",
191 "description": "Do not use the real path when resolving modules. If unset then will default to `true` if NodeJS option --preserve-symlinks is set."
192 },
193 "extractLicenses": {
194 "type": "boolean",
195 "description": "Extract all licenses in a separate file, in the case of production builds only.",
196 "default": true
197 },
198 "showCircularDependencies": {
199 "type": "boolean",
200 "description": "Show circular dependency warnings on builds.",
201 "default": false,
202 "x-deprecated": "The recommended method to detect circular dependencies in project code is to use either a lint rule or other external tooling."
203 },
204 "namedChunks": {
205 "type": "boolean",
206 "description": "Use file name for lazy loaded chunks.",
207 "default": false
208 },
209 "bundleDependencies": {
210 "description": "Which external dependencies to bundle into the bundle. By default, all of node_modules will be bundled.",
211 "default": true,
212 "oneOf": [
213 {
214 "type": "boolean"
215 },
216 {
217 "type": "string",
218 "enum": [
219 "none",
220 "all"
221 ]
222 }
223 ]
224 },
225 "externalDependencies": {
226 "description": "Exclude the listed external dependencies from being bundled into the bundle. Instead, the created bundle relies on these dependencies to be available during runtime.",
227 "type": "array",
228 "items": {
229 "type": "string"
230 },
231 "default": []
232 },
233 "statsJson": {
234 "type": "boolean",
235 "description": "Generates a 'stats.json' file which can be analyzed using tools such as 'webpack-bundle-analyzer'.",
236 "default": false
237 },
238 "watch": {
239 "type": "boolean",
240 "description": "Run build when files change.",
241 "default": false
242 },
243 "poll": {
244 "type": "number",
245 "description": "Enable and define the file watching poll time period in milliseconds."
246 },
247 "customWebpackConfig": {
248 "description": "Custom webpack configuration",
249 "default": false,
250 "oneOf": [
251 {
252 "type": "object",
253 "properties": {
254 "path": {
255 "type": "string",
256 "description": "Path to the custom webpack configuration file"
257 },
258 "mergeRules": {
259 "type": "object",
260 "description": "Merge rules as described here: https://github.com/survivejs/webpack-merge#mergewithrules"
261 },
262 "replaceDuplicatePlugins": {
263 "type": "boolean",
264 "description": "Flag that indicates whether to replace duplicate webpack plugins or not"
265 }
266 }
267 },
268 {
269 "type": "boolean"
270 }
271 ]
272 },
273 "indexTransform": {
274 "type": "string",
275 "description": "Path to the file with index.html transform function"
276 }
277 },
278 "additionalProperties": false,
279 "required": [
280 "outputPath",
281 "main",
282 "tsConfig"
283 ],
284 "definitions": {
285 "fileReplacement": {
286 "oneOf": [
287 {
288 "type": "object",
289 "properties": {
290 "src": {
291 "type": "string",
292 "pattern": "\\.(([cm]?j|t)sx?|json)$"
293 },
294 "replaceWith": {
295 "type": "string",
296 "pattern": "\\.(([cm]?j|t)sx?|json)$"
297 }
298 },
299 "additionalProperties": false,
300 "required": [
301 "src",
302 "replaceWith"
303 ]
304 },
305 {
306 "type": "object",
307 "properties": {
308 "replace": {
309 "type": "string",
310 "pattern": "\\.(([cm]?j|t)sx?|json)$"
311 },
312 "with": {
313 "type": "string",
314 "pattern": "\\.(([cm]?j|t)sx?|json)$"
315 }
316 },
317 "additionalProperties": false,
318 "required": [
319 "replace",
320 "with"
321 ]
322 }
323 ]
324 }
325 },
326 "description": "Server target options"
327}
\No newline at end of file