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

时间:2018-02-22 15:31:21

标签: javascript angular npm angular-cli angular5

当我尝试运行此命令时:

ng generate component <component-name>

我收到了这个错误:

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

我的角度配置:

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 cache clean,节点安装,但没有一个工作。

4 个答案:

答案 0 :(得分:7)

如果您只需要在项目中使用@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"

进行测试

答案 1 :(得分:2)

卸载现有的软件包@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

答案 2 :(得分:1)

我有同样的问题。我将包var children = document.body.getElementsByTagName('*'); var id='userScreenName'; var elements = [], child; for (var i = 0, length = children.length; i < length; i++) { child = children[i]; if (child.id.indexOf(id)>-1) elements.push(child); }; return elements[0].id; 更新为最新的包,它开始工作。

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

答案 3 :(得分:1)

有用的代码段:

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