mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
All other frameworks packages are now using APF v13 and are strict ESM packages. The compiler-cli does not use APF and is currently shipped with its devmode ES5 CommonJS sources. This is problematic as CommonJS cannot simply import from ECMAScript modules (like `@angular/compiler`). To fix this we use a bundler that allows us to ship the compiler-cli as a strict ESM package. Note: An ESM can import from an ESM without any problems. This is what we need hre. Unfortunatley we need a bundler here because converting the compiler-cli to ESM is non-trivial as relative imports would need an explicit `.js` extension. This work can be simplified by using a bundler that avoids relative imports completely. Note: This commit uses code-splitting to create multiple bundle entry-points for `yarn ngc, `yarn ngcc` etc. This commit removed the old `ivy-ngcc` entry-point that just printed an error message (to reduce amount of bundles having to be configured). PR Close #43431
28 lines
826 B
JavaScript
28 lines
826 B
JavaScript
#!/usr/bin/env node
|
|
/**
|
|
* @license
|
|
* Copyright Google LLC All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by an MIT-style license that can be
|
|
* found in the LICENSE file at https://angular.io/license
|
|
*/
|
|
import {mainNgcc} from './src/main';
|
|
import {parseCommandLineOptions} from './src/command_line_options';
|
|
|
|
// CLI entry point
|
|
process.title = 'ngcc';
|
|
const startTime = Date.now();
|
|
const options = parseCommandLineOptions(process.argv.slice(2));
|
|
(async () => {
|
|
try {
|
|
await mainNgcc(options);
|
|
if (options.logger) {
|
|
const duration = Math.round((Date.now() - startTime) / 1000);
|
|
options.logger.debug(`Run ngcc in ${duration}s.`);
|
|
}
|
|
process.exitCode = 0;
|
|
} catch (e) {
|
|
console.error(e.stack || e.message);
|
|
process.exit(typeof e.code === 'number' ? e.code : 1);
|
|
}
|
|
})();
|