@angular/build 18.2.0 → 18.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/build",
3
- "version": "18.2.0",
3
+ "version": "18.2.1",
4
4
  "description": "Official build system for Angular",
5
5
  "keywords": [
6
6
  "Angular CLI",
@@ -23,7 +23,7 @@
23
23
  "builders": "builders.json",
24
24
  "dependencies": {
25
25
  "@ampproject/remapping": "2.3.0",
26
- "@angular-devkit/architect": "0.1802.0",
26
+ "@angular-devkit/architect": "0.1802.1",
27
27
  "@babel/core": "7.25.2",
28
28
  "@babel/helper-annotate-as-pure": "7.24.7",
29
29
  "@babel/helper-split-export-declaration": "7.24.7",
@@ -43,7 +43,7 @@
43
43
  "picomatch": "4.0.2",
44
44
  "piscina": "4.6.1",
45
45
  "rollup": "4.20.0",
46
- "sass": "1.77.8",
46
+ "sass": "1.77.6",
47
47
  "semver": "7.6.3",
48
48
  "vite": "5.4.0",
49
49
  "watchpack": "2.4.1"
@@ -11,6 +11,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  exports.extractMessages = extractMessages;
14
+ const node_fs_1 = require("node:fs");
14
15
  const node_path_1 = __importDefault(require("node:path"));
15
16
  const application_1 = require("../application");
16
17
  const results_1 = require("../application/results");
@@ -72,6 +73,9 @@ function setupLocalizeExtractor(extractorConstructor, files, context) {
72
73
  if (file?.origin === 'memory') {
73
74
  content = textDecoder.decode(file.contents);
74
75
  }
76
+ else if (file?.origin === 'disk') {
77
+ content = (0, node_fs_1.readFileSync)(file.inputPath, 'utf-8');
78
+ }
75
79
  if (content === undefined) {
76
80
  throw new Error('Unknown file requested: ' + requestedPath);
77
81
  }
@@ -10,7 +10,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.normalizeCacheOptions = normalizeCacheOptions;
11
11
  const node_path_1 = require("node:path");
12
12
  /** Version placeholder is replaced during the build process with actual package version */
13
- const VERSION = '18.2.0';
13
+ const VERSION = '18.2.1';
14
14
  function hasCacheMetadata(value) {
15
15
  return (!!value &&
16
16
  typeof value === 'object' &&
@@ -49,11 +49,14 @@ async function prerenderPages(workspaceRoot, appShellOptions = {}, prerenderOpti
49
49
  assetsReversed[addLeadingSlash(destination.replace(/\\/g, node_path_1.posix.sep))] = source;
50
50
  }
51
51
  // Get routes to prerender
52
- const { routes: allRoutes, warnings: routesWarnings } = await getAllRoutes(workspaceRoot, outputFilesForWorker, assetsReversed, document, appShellOptions, prerenderOptions, sourcemap, verbose);
52
+ const { routes: allRoutes, warnings: routesWarnings, errors: routesErrors, } = await getAllRoutes(workspaceRoot, outputFilesForWorker, assetsReversed, document, appShellOptions, prerenderOptions, sourcemap, verbose);
53
+ if (routesErrors?.length) {
54
+ errors.push(...routesErrors);
55
+ }
53
56
  if (routesWarnings?.length) {
54
57
  warnings.push(...routesWarnings);
55
58
  }
56
- if (allRoutes.size < 1) {
59
+ if (allRoutes.size < 1 || errors.length > 0) {
57
60
  return {
58
61
  errors,
59
62
  warnings,
@@ -109,7 +112,8 @@ async function renderPages(sourcemap, allRoutes, maxThreads, workspaceRoot, outp
109
112
  const isAppShellRoute = appShellRoute === route;
110
113
  const serverContext = isAppShellRoute ? 'app-shell' : 'ssg';
111
114
  const render = renderWorker.run({ route, serverContext });
112
- const renderResult = render.then(({ content, warnings, errors }) => {
115
+ const renderResult = render
116
+ .then(({ content, warnings, errors }) => {
113
117
  if (content !== undefined) {
114
118
  const outPath = isAppShellRoute
115
119
  ? 'index.html'
@@ -122,6 +126,10 @@ async function renderPages(sourcemap, allRoutes, maxThreads, workspaceRoot, outp
122
126
  if (errors) {
123
127
  errors.push(...errors);
124
128
  }
129
+ })
130
+ .catch((err) => {
131
+ errors.push(`An error occurred while prerendering route '${route}'.\n\n${err.stack}`);
132
+ void renderWorker.destroy();
125
133
  });
126
134
  renderingPromises.push(renderResult);
127
135
  }
@@ -173,15 +181,19 @@ async function getAllRoutes(workspaceRoot, outputFilesForWorker, assetFilesForWo
173
181
  execArgv: workerExecArgv,
174
182
  recordTiming: false,
175
183
  });
184
+ const errors = [];
176
185
  const { routes: extractedRoutes, warnings } = await renderWorker
177
186
  .run({})
187
+ .catch((err) => {
188
+ errors.push(`An error occurred while extracting routes.\n\n${err.stack}`);
189
+ })
178
190
  .finally(() => {
179
191
  void renderWorker.destroy();
180
192
  });
181
193
  for (const route of extractedRoutes) {
182
194
  routes.add(route);
183
195
  }
184
- return { routes, warnings };
196
+ return { routes, warnings, errors };
185
197
  }
186
198
  function addLeadingSlash(value) {
187
199
  return value.charAt(0) === '/' ? value : '/' + value;