Skip to content

Commit 636c6ec

Browse files
authored
feat(angular-rspack): do not rely on postinstall >20.2 (#32613)
Update `postinstall` script to only be needed for Angular versions lower than v20.2.0, for which the relevant entry points are patched to expose needed functionality.
1 parent 4188786 commit 636c6ec

9 files changed

Lines changed: 548 additions & 109 deletions

File tree

packages/angular-rspack-compiler/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
"dependencies": {
4040
"@angular/build": ">=19.0.0 <21.0.0",
4141
"sass-embedded": "^1.79.3",
42+
"semver": "^7.6.3",
4243
"ts-morph": "^24.0.0",
4344
"tslib": "^2.3.0",
4445
"typescript": "~5.9.2"
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/**
2+
* @license
3+
* Copyright Google LLC All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.dev/license
7+
*/
8+
/**
9+
* @fileoverview
10+
* Private exports intended only for use with the @angular-devkit/build-angular package.
11+
* All exports are not supported for external use, do not provide SemVer guarantees, and
12+
* their existence may change in any future version.
13+
*/
14+
import { createAngularCompilation } from './tools/angular/compilation';
15+
import { CompilerPluginOptions } from './tools/esbuild/angular/compiler-plugin';
16+
import { BundleStylesheetOptions } from './tools/esbuild/stylesheets/bundle-options';
17+
18+
export { buildApplicationInternal } from './builders/application';
19+
export type { ApplicationBuilderInternalOptions } from './builders/application/options';
20+
export {
21+
type Result,
22+
type ResultFile,
23+
ResultKind,
24+
} from './builders/application/results';
25+
export { serveWithVite } from './builders/dev-server/vite-server';
26+
export * from './tools/babel/plugins';
27+
export type { ExternalResultMetadata } from './tools/esbuild/bundler-execution-result';
28+
export { emitFilesToDisk } from './tools/esbuild/utils';
29+
export { transformSupportedBrowsersToTargets } from './tools/esbuild/utils';
30+
export { SassWorkerImplementation } from './tools/sass/sass-service';
31+
export { SourceFileCache } from './tools/esbuild/angular/source-file-cache';
32+
export { createJitResourceTransformer } from './tools/angular/transformers/jit-resource-transformer';
33+
export { JavaScriptTransformer } from './tools/esbuild/javascript-transformer';
34+
35+
export declare function createCompilerPlugin(
36+
pluginOptions: CompilerPluginOptions & {
37+
browserOnlyBuild?: boolean;
38+
noopTypeScriptCompilation?: boolean;
39+
},
40+
styleOptions: BundleStylesheetOptions & {
41+
inlineStyleLanguage: string;
42+
}
43+
): import('esbuild').Plugin;
44+
45+
export type { AngularCompilation } from './tools/angular/compilation';
46+
export { createAngularCompilation };
47+
export { ComponentStylesheetBundler } from './tools/esbuild/angular/component-stylesheets';
48+
export * from './utils/bundle-calculator';
49+
export { checkPort } from './utils/check-port';
50+
export { deleteOutputDir } from './utils/delete-output-dir';
51+
export {
52+
type I18nOptions,
53+
createI18nOptions,
54+
loadTranslations,
55+
} from './utils/i18n-options';
56+
export {
57+
IndexHtmlGenerator,
58+
type IndexHtmlGeneratorOptions,
59+
type IndexHtmlGeneratorProcessOptions,
60+
type IndexHtmlTransform,
61+
} from './utils/index-file/index-html-generator';
62+
export type { FileInfo } from './utils/index-file/augment-index-html';
63+
export {
64+
type InlineCriticalCssProcessOptions,
65+
InlineCriticalCssProcessor,
66+
type InlineCriticalCssProcessorOptions,
67+
} from './utils/index-file/inline-critical-css';
68+
export { loadProxyConfiguration } from './utils/load-proxy-config';
69+
export {
70+
type TranslationLoader,
71+
createTranslationLoader,
72+
} from './utils/load-translations';
73+
export { purgeStaleBuildCache } from './utils/purge-cache';
74+
export { augmentAppWithServiceWorker } from './utils/service-worker';
75+
export { type BundleStats, generateBuildStatsTable } from './utils/stats-table';
76+
export { getSupportedBrowsers } from './utils/supported-browsers';
77+
export { assertCompatibleAngularVersion } from './utils/version';
78+
export { findTests, getTestEntrypoints } from './builders/karma/find-tests';
79+
export {
80+
findTailwindConfiguration,
81+
generateSearchDirectories,
82+
loadPostcssConfiguration,
83+
} from './utils/postcss-configuration';
Lines changed: 299 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,299 @@
1+
'use strict';
2+
/**
3+
* @license
4+
* Copyright Google LLC All Rights Reserved.
5+
*
6+
* Use of this source code is governed by an MIT-style license that can be
7+
* found in the LICENSE file at https://angular.dev/license
8+
*/
9+
var __createBinding =
10+
(this && this.__createBinding) ||
11+
(Object.create
12+
? function (o, m, k, k2) {
13+
if (k2 === undefined) k2 = k;
14+
var desc = Object.getOwnPropertyDescriptor(m, k);
15+
if (
16+
!desc ||
17+
('get' in desc ? !m.__esModule : desc.writable || desc.configurable)
18+
) {
19+
desc = {
20+
enumerable: true,
21+
get: function () {
22+
return m[k];
23+
},
24+
};
25+
}
26+
Object.defineProperty(o, k2, desc);
27+
}
28+
: function (o, m, k, k2) {
29+
if (k2 === undefined) k2 = k;
30+
o[k2] = m[k];
31+
});
32+
var __exportStar =
33+
(this && this.__exportStar) ||
34+
function (m, exports) {
35+
for (var p in m)
36+
if (p !== 'default' && !Object.prototype.hasOwnProperty.call(exports, p))
37+
__createBinding(exports, m, p);
38+
};
39+
Object.defineProperty(exports, '__esModule', { value: true });
40+
exports.loadPostcssConfiguration =
41+
exports.generateSearchDirectories =
42+
exports.findTailwindConfiguration =
43+
exports.getTestEntrypoints =
44+
exports.findTests =
45+
exports.assertCompatibleAngularVersion =
46+
exports.getSupportedBrowsers =
47+
exports.generateBuildStatsTable =
48+
exports.augmentAppWithServiceWorker =
49+
exports.purgeStaleBuildCache =
50+
exports.createTranslationLoader =
51+
exports.loadProxyConfiguration =
52+
exports.InlineCriticalCssProcessor =
53+
exports.IndexHtmlGenerator =
54+
exports.loadTranslations =
55+
exports.createI18nOptions =
56+
exports.deleteOutputDir =
57+
exports.checkPort =
58+
exports.ComponentStylesheetBundler =
59+
exports.createAngularCompilation =
60+
exports.JavaScriptTransformer =
61+
exports.createJitResourceTransformer =
62+
exports.SourceFileCache =
63+
exports.SassWorkerImplementation =
64+
exports.transformSupportedBrowsersToTargets =
65+
exports.emitFilesToDisk =
66+
exports.serveWithVite =
67+
exports.ResultKind =
68+
exports.buildApplicationInternal =
69+
void 0;
70+
exports.createCompilerPlugin = createCompilerPlugin;
71+
/**
72+
* @fileoverview
73+
* Private exports intended only for use with the @angular-devkit/build-angular package.
74+
* All exports are not supported for external use, do not provide SemVer guarantees, and
75+
* their existence may change in any future version.
76+
*/
77+
const compilation_1 = require('./tools/angular/compilation');
78+
Object.defineProperty(exports, 'createAngularCompilation', {
79+
enumerable: true,
80+
get: function () {
81+
return compilation_1.createAngularCompilation;
82+
},
83+
});
84+
const compiler_plugin_1 = require('./tools/esbuild/angular/compiler-plugin');
85+
const component_stylesheets_1 = require('./tools/esbuild/angular/component-stylesheets');
86+
// Builders
87+
var application_1 = require('./builders/application');
88+
Object.defineProperty(exports, 'buildApplicationInternal', {
89+
enumerable: true,
90+
get: function () {
91+
return application_1.buildApplicationInternal;
92+
},
93+
});
94+
var results_1 = require('./builders/application/results');
95+
Object.defineProperty(exports, 'ResultKind', {
96+
enumerable: true,
97+
get: function () {
98+
return results_1.ResultKind;
99+
},
100+
});
101+
var vite_server_1 = require('./builders/dev-server/vite-server');
102+
Object.defineProperty(exports, 'serveWithVite', {
103+
enumerable: true,
104+
get: function () {
105+
return vite_server_1.serveWithVite;
106+
},
107+
});
108+
// Tools
109+
__exportStar(require('./tools/babel/plugins'), exports);
110+
var utils_1 = require('./tools/esbuild/utils');
111+
Object.defineProperty(exports, 'emitFilesToDisk', {
112+
enumerable: true,
113+
get: function () {
114+
return utils_1.emitFilesToDisk;
115+
},
116+
});
117+
var utils_2 = require('./tools/esbuild/utils');
118+
Object.defineProperty(exports, 'transformSupportedBrowsersToTargets', {
119+
enumerable: true,
120+
get: function () {
121+
return utils_2.transformSupportedBrowsersToTargets;
122+
},
123+
});
124+
var sass_service_1 = require('./tools/sass/sass-service');
125+
Object.defineProperty(exports, 'SassWorkerImplementation', {
126+
enumerable: true,
127+
get: function () {
128+
return sass_service_1.SassWorkerImplementation;
129+
},
130+
});
131+
var source_file_cache_1 = require('./tools/esbuild/angular/source-file-cache');
132+
Object.defineProperty(exports, 'SourceFileCache', {
133+
enumerable: true,
134+
get: function () {
135+
return source_file_cache_1.SourceFileCache;
136+
},
137+
});
138+
var jit_resource_transformer_1 = require('./tools/angular/transformers/jit-resource-transformer');
139+
Object.defineProperty(exports, 'createJitResourceTransformer', {
140+
enumerable: true,
141+
get: function () {
142+
return jit_resource_transformer_1.createJitResourceTransformer;
143+
},
144+
});
145+
var javascript_transformer_1 = require('./tools/esbuild/javascript-transformer');
146+
Object.defineProperty(exports, 'JavaScriptTransformer', {
147+
enumerable: true,
148+
get: function () {
149+
return javascript_transformer_1.JavaScriptTransformer;
150+
},
151+
});
152+
function createCompilerPlugin(pluginOptions, styleOptions) {
153+
return (0, compiler_plugin_1.createCompilerPlugin)(
154+
pluginOptions,
155+
pluginOptions.noopTypeScriptCompilation
156+
? new compilation_1.NoopCompilation()
157+
: () =>
158+
(0, compilation_1.createAngularCompilation)(
159+
!!pluginOptions.jit,
160+
!!pluginOptions.browserOnlyBuild
161+
),
162+
new component_stylesheets_1.ComponentStylesheetBundler(
163+
styleOptions,
164+
styleOptions.inlineStyleLanguage,
165+
pluginOptions.incremental
166+
)
167+
);
168+
}
169+
var component_stylesheets_2 = require('./tools/esbuild/angular/component-stylesheets');
170+
Object.defineProperty(exports, 'ComponentStylesheetBundler', {
171+
enumerable: true,
172+
get: function () {
173+
return component_stylesheets_2.ComponentStylesheetBundler;
174+
},
175+
});
176+
// Utilities
177+
__exportStar(require('./utils/bundle-calculator'), exports);
178+
var check_port_1 = require('./utils/check-port');
179+
Object.defineProperty(exports, 'checkPort', {
180+
enumerable: true,
181+
get: function () {
182+
return check_port_1.checkPort;
183+
},
184+
});
185+
var delete_output_dir_1 = require('./utils/delete-output-dir');
186+
Object.defineProperty(exports, 'deleteOutputDir', {
187+
enumerable: true,
188+
get: function () {
189+
return delete_output_dir_1.deleteOutputDir;
190+
},
191+
});
192+
var i18n_options_1 = require('./utils/i18n-options');
193+
Object.defineProperty(exports, 'createI18nOptions', {
194+
enumerable: true,
195+
get: function () {
196+
return i18n_options_1.createI18nOptions;
197+
},
198+
});
199+
Object.defineProperty(exports, 'loadTranslations', {
200+
enumerable: true,
201+
get: function () {
202+
return i18n_options_1.loadTranslations;
203+
},
204+
});
205+
var index_html_generator_1 = require('./utils/index-file/index-html-generator');
206+
Object.defineProperty(exports, 'IndexHtmlGenerator', {
207+
enumerable: true,
208+
get: function () {
209+
return index_html_generator_1.IndexHtmlGenerator;
210+
},
211+
});
212+
var inline_critical_css_1 = require('./utils/index-file/inline-critical-css');
213+
Object.defineProperty(exports, 'InlineCriticalCssProcessor', {
214+
enumerable: true,
215+
get: function () {
216+
return inline_critical_css_1.InlineCriticalCssProcessor;
217+
},
218+
});
219+
var load_proxy_config_1 = require('./utils/load-proxy-config');
220+
Object.defineProperty(exports, 'loadProxyConfiguration', {
221+
enumerable: true,
222+
get: function () {
223+
return load_proxy_config_1.loadProxyConfiguration;
224+
},
225+
});
226+
var load_translations_1 = require('./utils/load-translations');
227+
Object.defineProperty(exports, 'createTranslationLoader', {
228+
enumerable: true,
229+
get: function () {
230+
return load_translations_1.createTranslationLoader;
231+
},
232+
});
233+
var purge_cache_1 = require('./utils/purge-cache');
234+
Object.defineProperty(exports, 'purgeStaleBuildCache', {
235+
enumerable: true,
236+
get: function () {
237+
return purge_cache_1.purgeStaleBuildCache;
238+
},
239+
});
240+
var service_worker_1 = require('./utils/service-worker');
241+
Object.defineProperty(exports, 'augmentAppWithServiceWorker', {
242+
enumerable: true,
243+
get: function () {
244+
return service_worker_1.augmentAppWithServiceWorker;
245+
},
246+
});
247+
var stats_table_1 = require('./utils/stats-table');
248+
Object.defineProperty(exports, 'generateBuildStatsTable', {
249+
enumerable: true,
250+
get: function () {
251+
return stats_table_1.generateBuildStatsTable;
252+
},
253+
});
254+
var supported_browsers_1 = require('./utils/supported-browsers');
255+
Object.defineProperty(exports, 'getSupportedBrowsers', {
256+
enumerable: true,
257+
get: function () {
258+
return supported_browsers_1.getSupportedBrowsers;
259+
},
260+
});
261+
var version_1 = require('./utils/version');
262+
Object.defineProperty(exports, 'assertCompatibleAngularVersion', {
263+
enumerable: true,
264+
get: function () {
265+
return version_1.assertCompatibleAngularVersion;
266+
},
267+
});
268+
var find_tests_1 = require('./builders/karma/find-tests');
269+
Object.defineProperty(exports, 'findTests', {
270+
enumerable: true,
271+
get: function () {
272+
return find_tests_1.findTests;
273+
},
274+
});
275+
Object.defineProperty(exports, 'getTestEntrypoints', {
276+
enumerable: true,
277+
get: function () {
278+
return find_tests_1.getTestEntrypoints;
279+
},
280+
});
281+
var postcss_configuration_1 = require('./utils/postcss-configuration');
282+
Object.defineProperty(exports, 'findTailwindConfiguration', {
283+
enumerable: true,
284+
get: function () {
285+
return postcss_configuration_1.findTailwindConfiguration;
286+
},
287+
});
288+
Object.defineProperty(exports, 'generateSearchDirectories', {
289+
enumerable: true,
290+
get: function () {
291+
return postcss_configuration_1.generateSearchDirectories;
292+
},
293+
});
294+
Object.defineProperty(exports, 'loadPostcssConfiguration', {
295+
enumerable: true,
296+
get: function () {
297+
return postcss_configuration_1.loadPostcssConfiguration;
298+
},
299+
});

0 commit comments

Comments
 (0)