我使用ng upgrade
将 Angular 5 更新为 Angular 6 ,并发生以下错误。我删除了node_modules
和package-lock.json
并再次执行了npm install
,但错误是相同的:
TypeError: ts.formatting.RulesProvider is not a constructor
at getRuleProvider (C:\Users\MarçalGómez\Documents\WebApp\node_modules\typescript-formatter\lib\formatter.ts:22:28)
at Object.format [as default] (C:\Users\MarçalGómez\Documents\WebApp\node_modules\typescript-formatter\lib\formatter.ts:14:67)
at C:\Users\MarçalGómez\Documents\WebApp\node_modules\typescript-formatter\lib\index.ts:172:42
at <anonymous>
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! default@0.0.0 tsformat: `tsfmt -r`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the default@0.0.0 tsformat script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\MarçalGómez\AppData\Roaming\npm-cache\_logs\2018-05-04T15_27_51_987Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! default@0.0.0 postinstall: `npm run tsformat`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the default@0.0.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\MarçalGómez\AppData\Roaming\npm-cache\_logs\2018-05-04T15_27_52_026Z-debug.log
有什么想法吗?我也试过没有运气更新npm。
谢谢
答案 0 :(得分:1)
我通过从package.json中删除参数postinstall
和tsformat
解决了我的问题
这些参数在cli创建的新项目中不存在,所以我删除了它们,现在它正常工作。
答案 1 :(得分:0)
还有其他几个你需要解决的问题。
检查以下步骤,以便从Angular 5顺利升级到Angular 6.这些步骤提供了有关升级过程中遇到的问题以及解决方法的详细信息。
{
"rulesDirectory": [
"node_modules/rxjs-tslint"
],
"rules": {
"rxjs-collapse-imports": true,
"rxjs-pipeable-operators-only": true,
"rxjs-no-static-observable-methods": true,
"rxjs-proper-imports": true
}
}
运营商名称更改:
do -> tap,
catch -> catchError,
switch -> switchAll,
finally -> finalize
所有运营商都转移到了rxjs /运营商
import { map, filter, reduce } from 'rxjs/operators';
可观察的创建方法移至rxjs
import { Observable, Subject, of, from } from 'rxjs';
你们都已经准备好了。欢迎来到Angular 6:) Check my blog post here on how to upgrade
答案 2 :(得分:0)
在遵循本指南时,我遇到了同样的问题,将角度从5变为https://update.angular.io/
特别是在必须执行时,我遇到了同样的错误
ng update @angular/material
我修复了卸载并重新安装typescript-formatter的问题。 这也导致zone.js和rxjs也卸载并重新安装,没关系。
之前的我的package.json看起来像这样:
...
"rxjs": "^5.5.6",
"typescript-formatter": "^5.2.0",
"zone.js": "^0.8.19"
...
现在看起来像这样:
...
"rxjs": "^6.2.2",
"typescript-formatter": "^7.2.2",
"zone.js": "^0.8.26"
...
一切都顺利进行