Nodejs 改变 ng new 给我的默认值

发布于 1周前 作者 gougou168 来自 nodejs/Nestjs

不是很了解 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 给我的默认值

4 回复

可以。直接npm i rxjs@6就行了。


你直接用 7 试试,估计你说的那个依赖也能跑起来,不行的话换成 6 也可以

直接 npm i —legacy-peer-deps

在Node.js环境下,如果你想改变ng new命令生成的Angular项目的默认值,可以通过自定义Angular Schematics或修改Angular CLI的配置文件来实现。以下是一个较为简单的方法,通过覆盖Angular Schematics中的默认设置。

  1. 创建自定义Schematics: 首先,你需要安装[@angular-devkit](/user/angular-devkit)/schematics-cli工具来创建和测试你的自定义Schematics。

    npm install -g [@angular-devkit](/user/angular-devkit)/schematics-cli
    

    然后,你可以创建一个新的Schematics集合,并修改其中的application schematic。

  2. 修改默认值: 在你的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"
          }
        }
      }
    }
    
  3. 使用自定义Schematics: 最后,在创建新项目时,你可以通过指定自定义Schematics集合来改变默认值。

    ng new my-new-app --collection=./path/to/your/schematics
    

这种方法允许你高度自定义Angular CLI的行为,但需要注意的是,它涉及到对Angular内部工具链的深入理解,包括Schematics的工作原理。对于大多数用例,修改Angular CLI生成的项目文件也是一种可行的方法,但这通常更加繁琐且不易于维护。

回到顶部