我正在尝试使用最新的角度cli来生成组件。我试图生成一个模块,但我也遇到了类似的错误。
graphlab.linear_regression.create
我收到了这个错误
ng g component testComponent
我的Package.json文件如下所示:
input.mergeMap is not a function
TypeError: input.mergeMap is not a function
at Object.callRule (C:\Users\dammy\Documents\Visual Studio 2017\Projects\Cars\node_modules\@angular-devkit\schematics\src\rules\call.js:70:18)
我已安装:Angular/cli@1.6.0
答案 0 :(得分:3)
It seems that if you have @angular/cli installed globally and a different
version installed locally it gets broken. I solved the same error removing the
cli package that was installed locally with
npm remove @angular/cli --save
then install your CLI->
npm install -g @angular/cli@latest
答案 1 :(得分:3)
对我来说,我重新安装了angular-devkit。运行命令:
npm install @angular-devkit/schematics@0.0.34 --save-dev
它有效!
答案 2 :(得分:2)
升级到@angular/cli
1.6.0时遇到同样的问题,即使我有rxjs
v5.5.5。我能够通过以下方式解决它:
npm i --save-dev @angular/cli@^1.6.0
npm i @angular/cli@^1.6.0 -g
npm i --save-dev typescript@^2.6.2
npm i typescript@^2.6.2 -g
就我而言,这很可能是因为我的全局打字稿与我的本地打字稿不同。我只是重新安装了所有内容以确保所有内容都处于同步状态[显然,你可以将这些命令中的一些组合起来,为了清晰起见,我就这样发布了它。)
更新:由于某种原因我有这个问题的回归,这次解决方案本身并没有自行解决。尝试上述操作后,我可以通过删除我的package-lock.json
和本地node_modules文件夹并执行另一个npm install
来解决此问题。
答案 3 :(得分:1)
@angular/cli
版本的rxjs
依赖性为v5.5.5
请参阅此依赖关系树:
yarn list rxjs
yarn list v0.27.5
├─ @angular-devkit/schematics@0.0.41
│ └─ rxjs@5.5.5
├─ @angular/cli@1.6.0
│ └─ rxjs@5.5.5
└─ rxjs@5.5.2
Done in 1.16s.
在我的情况下,版本是5.5.2并且升级修复了这个问题。
答案 4 :(得分:0)
有同样的问题;我通过删除node_modules暂时恢复到@ angular / cli的v1.5.0并再次运行yarn install
。
由于@ angular-devkit / schematics @ 0.0.41(需要rxjs@5.5.5)和@ angular / cli @ 1.6.0的依赖性不匹配,将@ angular / cli升级到版本1.6.0会引入此问题。
编辑:请注意,在package.json中将rxjs的版本设置为5.5.5不会升级@ angular-devkit / schematics @ 0.0.41或@ angular / cli的代码依赖项@ 1.6.0,如下面的摘录所示。
参考:[https://github.com/angular/angular-cli/issues/8782][1]
受影响的命令:
ng generate XXX
似乎@ angular / cli和@ angular-devkit / schematics的依赖关系在将@ angular / cli升级到v1.6.0之后没有升级,特别是rxjs没有升级。
├─ @angular-devkit/schematics@0.0.41
│ ├─ @angular-devkit/core@0.0.22
│ ├─ @ngtools/json-schema@^1.1.0
│ ├─ @schematics/schematics@0.0.10
│ ├─ minimist@^1.2.0
│ ├─ rxjs@^5.5.2
│ ├─ rxjs@5.5.2
│ │ └─ symbol-observable@^1.0.1
│ └─ symbol-observable@1.0.4
├─ @angular/animations@5.0.2
│ └─ tslib@^1.7.1
├─ @angular/cli@1.6.0
│ ├─ @angular-devkit/build-optimizer@~0.0.35
│ ├─ @angular-devkit/schematics@~0.0.40
│ ├─ @ngtools/json-schema@1.1.0
│ ├─ @ngtools/webpack@1.9.0
│ ├─ @schematics/angular@~0.1.10
│ ├─ autoprefixer@^6.5.3
│ ├─ chalk@~2.2.0
│ ├─ chalk@2.2.2
│ │ ├─ ansi-styles@^3.1.0
│ │ ├─ escape-string-regexp@^1.0.5
│ │ └─ supports-color@^4.0.0
│ ├─ circular-dependency-plugin@^4.2.1
│ ├─ common-tags@^1.3.1
│ ├─ copy-webpack-plugin@^4.1.1
│ ├─ core-object@^3.1.0
│ ├─ css-loader@^0.28.1
│ ├─ cssnano@^3.10.0
│ ├─ denodeify@^1.2.1
│ ├─ ember-cli-string-utils@^1.0.0
│ ├─ exports-loader@^0.6.3
│ ├─ extract-text-webpack-plugin@^3.0.2
│ ├─ file-loader@^1.1.5
│ ├─ fs-extra@^4.0.0
│ ├─ glob@^7.0.3
│ ├─ html-webpack-plugin@^2.29.0
│ ├─ istanbul-instrumenter-loader@^2.0.0
│ ├─ karma-source-map-support@^1.2.0
│ ├─ less-loader@^4.0.5
│ ├─ less@^2.7.2
│ ├─ license-webpack-plugin@^1.0.0
│ ├─ lodash@^4.11.1
│ ├─ memory-fs@^0.4.1
│ ├─ minimatch@^3.0.4
│ ├─ node-modules-path@^1.0.0
│ ├─ node-sass@^4.3.0
│ ├─ nopt@^4.0.1
│ ├─ opn@~5.1.0
│ ├─ portfinder@~1.0.12
│ ├─ postcss-custom-properties@^6.1.0
│ ├─ postcss-loader@^2.0.8
│ ├─ postcss-url@^7.1.2
│ ├─ raw-loader@^0.5.1
│ ├─ resolve@^1.1.7
│ ├─ rxjs@^5.5.2
│ ├─ rxjs@5.5.2
│ │ └─ symbol-observable@^1.0.1
答案 5 :(得分:0)
升级到@ angular / cli 1.6.3和typescript 2.6.2后,我遇到了同样的问题。您必须检查@ angular / cli和Typescript的全局版本和本地版本是否相同。
您可以使用以下命令检查全局版本:
ng -v
tsc -v
然后将它与您当地的package.json进行比较。
如果他们不同:
<强>全球强>
npm remove -g @angular/cli
npm remove -g typescript
npm i -g @angular/cli@latest
npm i -g typescript@latest
<强>本地:强>
//Remove node_modules folder
//remove package-lock.json
npm i @angular/cli@latest --save-dev
npm i typescript@latest --save-dev
npm install
注意:在撰写本文时,我收到了来自angular cli的警告,告知
@angular/compiler-cli@5.2.0 requires typescript@'>=2.4.2 <2.6.0' but 2.6.2 was found instead.
如果你想避免这种情况。你可以使用
npm i -g typescript@2.4.2
npm i typescript@2.4.2 --save-dev