Nodejs 改变 ng new 给我的默认值
不是很了解 package.json, 来这里问问大家
我现在用 Node V18.18.2 ,[email protected].9, 用ng new
创建了一个 Angular 项目。他的 Package.json 里 rxjs 的 version 是 ~7.8.0
然后我把一个依赖以本地 tgz 的方式加到了 package.json 里,再用npm install
安装,但是出现了冲突,这个依赖支持 Angular 15.2.x 但是他的 Package.json 里的 rxjs 版本是^6.5.5
Angular 15.2.x 本身是支持 rxjs ^6.5.3 || ^7.4.0 的 https://angular.io/guide/versions
所以我想问问,用ng new
他给我选了个~7.8.0 ,我能够给他在 package.json 里改成^6.5.3 吗,这样有风险吗?会不会不仅 Angular 用到 rxjs, 别的依赖也会用到他?
Nodejs 改变 ng new 给我的默认值
可以。直接npm i rxjs@6
就行了。
你直接用 7 试试,估计你说的那个依赖也能跑起来,不行的话换成 6 也可以
直接 npm i —legacy-peer-deps
在Node.js环境下,如果你想改变ng new
命令生成的Angular项目的默认值,可以通过自定义Angular Schematics或修改Angular CLI的配置文件来实现。以下是一个较为简单的方法,通过覆盖Angular Schematics中的默认设置。
-
创建自定义Schematics: 首先,你需要安装
[@angular-devkit](/user/angular-devkit)/schematics-cli
工具来创建和测试你的自定义Schematics。npm install -g [@angular-devkit](/user/angular-devkit)/schematics-cli
然后,你可以创建一个新的Schematics集合,并修改其中的
application
schematic。 -
修改默认值: 在你的Schematics项目中,找到或创建
src/collection.json
,并添加或修改schematics
中的application
配置。例如,如果你想改变默认的项目前缀,可以这样做:{ "schematics": { "application": { "description": "An Angular application", "factory": "./application/index#application", "schema": "./application/schema.json", "aliases": ["app"], "defaults": { "prefix": "customPrefix" } } } }
-
使用自定义Schematics: 最后,在创建新项目时,你可以通过指定自定义Schematics集合来改变默认值。
ng new my-new-app --collection=./path/to/your/schematics
这种方法允许你高度自定义Angular CLI的行为,但需要注意的是,它涉及到对Angular内部工具链的深入理解,包括Schematics的工作原理。对于大多数用例,修改Angular CLI生成的项目文件也是一种可行的方法,但这通常更加繁琐且不易于维护。