【问题标题】:Schematic input does not validate against the Schema: {"name":"testng7"} on Angular 7Schematic 输入不针对 Schema: {"name":"testng7"} on Angular 7 进行验证
【发布时间】:2026-02-06 15:35:01
【问题描述】:

我在 Mac OS 上将 Angular CLI 更新为最新的 @angular/cli@7.0.2。发出命令ng new testng7 时,出现此错误:

Schematic input does not validate against the Schema: {"name":"testng7"}
Errors:
  Data path "" should have required property 'version'.

并没有创建任何东西。任何线索如何解决?

【问题讨论】:

  • 在我的情况下,是 '_' 导致了这个错误,在我把它改成 '-' 之后它工作正常
  • 点 [.] 也不起作用..
  • 此评论将来可能会对某人有所帮助 => 如果您的 Angular 应用程序中有多个项目,然后添加标志 --client-project 例如 => ng add @nguniversal/express-engine --client-项目=项目名称

标签: angular angular-cli angular7


【解决方案1】:

这个错误可能是为了避免命名标准

项目名称不能有underscore '_'。它可以有dashes '-'smallcapital 字母和digits

有效的项目名称

myProject //camel casing style or JavaScript style

MyProject //normal style

MyProject1 //letters and numbers mixed style

My-Project1 //letters, numbers and dash mixed style

项目名称无效

MyProject-1 //dash can not be between letter and digit

My_Project //underscore is restricted

【讨论】:

  • 感谢 Wasif,但是,我遇到的错误与单纯的命名无关。
  • 太棒了,这是由于“_”我改为“-”它现在可以工作了。
【解决方案2】:

我添加了这个标志以使其工作--client-project

ng add @nguniversal/express-engine --client-project=launcher

【讨论】:

    【解决方案3】:

    首先,要升级,我这样做了:

    npm i -g @angular/cli
    npm i @angular/cli
    

    全局和本地安装。运行npm audit fix 显示在 npm 日志中缺少 package.json 存在问题 - 从我的根目录中丢失!所以我在我的主目录中使用以下命令创建了一个:

    npm init --yes
    

    默认的。现在发出ng new projName 有效。

    【讨论】:

      【解决方案4】:

      我遇到了同样的问题

      Schema 输入未针对 Schema 进行验证:{"name":"DemoProj"}

      错误:

      数据路径“”应具有必需的属性“版本”。

      执行以下步骤来解决此问题

      1) 卸载 -g angular-cli

      2) npm 卸载 --save-dev angular-cli

      3) npm install -g @angular/cli@latest

      4) npm install --save-dev @angular/cli@latest

      5) npm install -g

      6) 生成新的 YourProjectName

      我希望它会起作用

      【讨论】:

      • 我在尝试 ng add 一个包时遇到了与 Angular 8 类似的问题。这解决了问题。
      【解决方案5】:

      试试

      新项目名称

      具有管理员权限的PowerShell中的cmd。我做了一次,之后它也可以在正常的 cmd 提示符下工作。

      【讨论】:

      • 我当然首先尝试过 - 但它会导致我描述的问题。我也在这里写过这个问题:*.com/questions/52920355/…。它现在至少为我的问题添加了解决方案。
      【解决方案6】:

      试试

      ng new testng7 --version=7.0.2

      它会工作!!!

      【讨论】:

        【解决方案7】:

        有时可能是由错误的“全局”版本的 ng 引起的。

        试试

        npx ng generate component MyComponent
        

        这将使用安装到项目的 node_modules 中的“本地”ng

        【讨论】:

          【解决方案8】:

          没有一个解决方案对我有帮助,或者没有解决根本原因。 我在我的 angular.json 中找到了这个

            "schematics": {
          "@schematics/angular:component": {
            "styletext": "scss"
           }
          }
          

          我的 IDE 也显示 styletext 属性是不允许的。所以我将上面的内容更改为这个,它可以工作。

              "@schematics/angular:component": {
                "skipTests": true
              }
            }
          

          【讨论】: