无法读取未定义的 属性 'dasherize'

Cannot read property 'dasherize' of undefined

当我尝试运行这个命令时:

ng generate component <component-name>

我收到这个错误:

Error: Cannot read property 'dasherize' of undefined
Cannot read property 'dasherize' of undefined

我的 angular 配置:

Angular CLI: 1.7.1
Node: 7.5.0
OS: darwin x64
Angular: 5.2.6
... animations, common, compiler, compiler-cli, core, forms
... http, platform-browser, platform-browser-dynamic
... platform-server, router

@angular/cdk: 5.2.2
@angular/cli: 1.7.1
@angular/material: 5.2.2
@angular-devkit/build-optimizer: 0.4.2
@angular-devkit/core: 0.0.20
@angular-devkit/schematics: 0.0.34
@ngtools/json-schema: 1.1.0
@ngtools/webpack: 1.10.1
@schematics/angular: 0.3.2
@schematics/package-update: 0.3.2
typescript: 2.6.2
webpack: 3.11.0

我已经尝试删除 node_modules、npm 缓存清理、节点安装和 none 的工作。

我遇到了同样的问题。我将软件包 @angular-devkit/schematics 更新到最新版本,它开始工作了。

希望这也能解决您的问题。

如果您只需要在您的项目中使用 @Angular/Cli 而没有 Angular DevKit 的所有库提供的扩展功能(描述 here)。

在你的 package.json 你可以简单地在你的 devDependencies 中设置 "@angular-devkit/core":"0.4.6" 忽略其他库,例如 schematicspackage-update,您可以完全删除它们。

这样你就可以使用快捷方式别名来创建新的组件了,不会出现像这样的问题

ng g c my-new-component

测试 "@angular/cli": "1.7.3"

有用的代码片段:

 "@angular-devkit/core": "^0.6.8",
 "@angular-devkit/schematics": "^0.6.8",
 "@angular/cli": "^1.7.4",
 "@angular/compiler-cli": "^5.1.1",

卸载了现有的软件包 @angular-devkit/core@angular-devkit/schematics 并安装了最新的帮助我的软件包

npm uninstall @angular-devkit/core
npm uninstall @angular-devkit/schematics

然后安装最新的

npm install @angular-devkit/core  --save-dev
npm install @angular-devkit/schematics --save-dev