ng g app-shell input.mergeMap 不是函数
ng g app-shell input.mergeMap is not a function
我正在尝试使用最新的 angular cli 生成组件。我尝试生成一个模块,但我也遇到了类似的错误。
ng g component testComponent
我遇到了这个错误
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)
我的 Package.json 文件如下所示:
{
...
},
"dependencies": {
...
"css-loader": "0.28.4",
"es6-shim": "0.35.3",
"event-source-polyfill": "0.0.9",
"expose-loader": "0.7.3",
"extract-text-webpack-plugin": "2.1.2",
"file-loader": "0.11.2",
"html-loader": "0.4.5",
"isomorphic-fetch": "2.2.1",
"jquery": "3.2.1",
"json-loader": "0.5.4",
"preboot": "4.5.2",
"raw-loader": "0.5.1",
"reflect-metadata": "0.1.10",
"rxjs": "5.5.5",
"style-loader": "0.18.2",
"to-string-loader": "1.1.5",
"typescript": "2.4.1",
"url-loader": "0.5.9",
"webpack": "2.5.1",
"webpack-hot-middleware": "2.18.2",
"webpack-merge": "4.1.0",
"zone.js": "0.8.12"
},
我已经安装:Angular/cli@1.6.0
看起来 @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,升级解决了这个问题。
有同样的问题;我已经通过再次删除 node_modules 和 运行 yarn install
暂时恢复到 @angular/cli 的 v1.5.0。
将@angular/cli 升级到版本 1.6.0 会引入此问题,因为 @angular-devkit/schematics@0.0.41(需要 rxjs@5.5.5)和 @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
我在升级到 @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
就我而言,这很可能是由于我的全局打字稿与本地打字稿的版本不同所致。我刚刚重新安装了所有以确保一切都同步 [显然,您可以组合其中的一些命令,为了清楚起见,我只是这样发布的]。
更新:出于某种原因,我遇到了这个问题 return,但这次上述解决方案无法单独使用。尝试上述操作后,我能够通过删除我的 package-lock.json
和本地 node_modules 文件夹并执行另一个 npm install
.
来解决它
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
对我来说,我重新安装了 angular-devkit。 运行 命令:
npm install @angular-devkit/schematics@0.0.34 --save-dev
成功了!
升级到@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
我正在尝试使用最新的 angular cli 生成组件。我尝试生成一个模块,但我也遇到了类似的错误。
ng g component testComponent
我遇到了这个错误
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)
我的 Package.json 文件如下所示:
{
...
},
"dependencies": {
...
"css-loader": "0.28.4",
"es6-shim": "0.35.3",
"event-source-polyfill": "0.0.9",
"expose-loader": "0.7.3",
"extract-text-webpack-plugin": "2.1.2",
"file-loader": "0.11.2",
"html-loader": "0.4.5",
"isomorphic-fetch": "2.2.1",
"jquery": "3.2.1",
"json-loader": "0.5.4",
"preboot": "4.5.2",
"raw-loader": "0.5.1",
"reflect-metadata": "0.1.10",
"rxjs": "5.5.5",
"style-loader": "0.18.2",
"to-string-loader": "1.1.5",
"typescript": "2.4.1",
"url-loader": "0.5.9",
"webpack": "2.5.1",
"webpack-hot-middleware": "2.18.2",
"webpack-merge": "4.1.0",
"zone.js": "0.8.12"
},
我已经安装:Angular/cli@1.6.0
看起来 @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,升级解决了这个问题。
有同样的问题;我已经通过再次删除 node_modules 和 运行 yarn install
暂时恢复到 @angular/cli 的 v1.5.0。
将@angular/cli 升级到版本 1.6.0 会引入此问题,因为 @angular-devkit/schematics@0.0.41(需要 rxjs@5.5.5)和 @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
我在升级到 @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
就我而言,这很可能是由于我的全局打字稿与本地打字稿的版本不同所致。我刚刚重新安装了所有以确保一切都同步 [显然,您可以组合其中的一些命令,为了清楚起见,我只是这样发布的]。
更新:出于某种原因,我遇到了这个问题 return,但这次上述解决方案无法单独使用。尝试上述操作后,我能够通过删除我的 package-lock.json
和本地 node_modules 文件夹并执行另一个 npm install
.
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
对我来说,我重新安装了 angular-devkit。 运行 命令:
npm install @angular-devkit/schematics@0.0.34 --save-dev
成功了!
升级到@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