mirror of
https://github.com/angular/angular-cli.git
synced 2025-05-17 19:13:34 +08:00
Node.js v16 will be entering an LTS state prior to the release of Angular v13 which allows Node.js v16 to be marked as officially supported by the Angular CLI. The initial bootstrapping check now adds Node.js v16 to the output message in the event of an unsupported Node.js version. NOTE: Prior to the final v13 release, the Node.js v16 minor should be updated to the actual LTS version once available.
59 lines
2.0 KiB
JavaScript
Executable File
59 lines
2.0 KiB
JavaScript
Executable File
#!/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
|
|
*/
|
|
|
|
/* eslint-disable no-console */
|
|
/* eslint-disable import/no-unassigned-import */
|
|
'use strict';
|
|
|
|
// Provide a title to the process in `ps`.
|
|
// Due to an obscure Mac bug, do not start this title with any symbol.
|
|
try {
|
|
process.title = 'ng ' + Array.from(process.argv).slice(2).join(' ');
|
|
} catch (_) {
|
|
// If an error happened above, use the most basic title.
|
|
process.title = 'ng';
|
|
}
|
|
|
|
// This node version check ensures that extremely old versions of node are not used.
|
|
// These may not support ES2015 features such as const/let/async/await/etc.
|
|
// These would then crash with a hard to diagnose error message.
|
|
var version = process.versions.node.split('.').map((part) => Number(part));
|
|
if (version[0] % 2 === 1 && version[0] > 16) {
|
|
// Allow new odd numbered releases with a warning (currently v17+)
|
|
console.warn(
|
|
'Node.js version ' +
|
|
process.version +
|
|
' detected.\n' +
|
|
'Odd numbered Node.js versions will not enter LTS status and should not be used for production.' +
|
|
' For more information, please see https://nodejs.org/en/about/releases/.',
|
|
);
|
|
|
|
require('./bootstrap');
|
|
} else if (
|
|
version[0] < 12 ||
|
|
version[0] === 13 ||
|
|
version[0] === 15 ||
|
|
(version[0] === 12 && version[1] < 20) ||
|
|
(version[0] === 14 && version[1] < 15) ||
|
|
(version[0] === 16 && version[1] < 10)
|
|
) {
|
|
// Error and exit if less than 12.20 or 13.x or less than 14.15 or 15.x or less than 16.10
|
|
console.error(
|
|
'Node.js version ' +
|
|
process.version +
|
|
' detected.\n' +
|
|
'The Angular CLI requires a minimum Node.js version of either v12.20, v14.15, or v16.10.\n\n' +
|
|
'Please update your Node.js version or visit https://nodejs.org/ for additional instructions.\n',
|
|
);
|
|
|
|
process.exitCode = 3;
|
|
} else {
|
|
require('./bootstrap');
|
|
}
|