feat(dev-infra): register ts-node when reading configuration (#37196)
`ts-node` is now an optional peer dependency of the shared dev-infra package. Whenever a `ng-dev` command runs, and a TypeScript-based configuration file exists, `ts-node` is set up if available. That allows consumers of the package (as the components repo) to more conveniently use a TypeScript-based configuration for dev-infra. Currently, commands would need to be proxied through `ts-node` which rather complicates the setup: ``` NG_DEV_COMMAND="ts-node ./node_modules/@angular/dev-infra-private/cli.js" ``` I'm thinking that it should be best-practice to use TypeScript for writing the configuration files. Given that the tool is used primarily in Angular projects (for which most sources are TypeScript), this should be acceptable. PR Close #37196
This commit is contained in:

committed by
Kara Erickson

parent
4e96cdc23f
commit
383f04b96d
17
dev-infra/utils/ts-node.ts
Normal file
17
dev-infra/utils/ts-node.ts
Normal file
@ -0,0 +1,17 @@
|
||||
/**
|
||||
* @license
|
||||
* Copyright Google Inc. 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
|
||||
*/
|
||||
|
||||
/** Whether ts-node has been installed and is available to ng-dev. */
|
||||
export function isTsNodeAvailable(): boolean {
|
||||
try {
|
||||
require.resolve('ts-node');
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user