将角度7更新为角度8,我使用命令angular/cli angular/core
成功更新到$ ng update @angular/cli@v8 @angular/core@v8
。
而且我也使用角形材质,所以我想先更新材质,然后再用$ ng update @angular/material@v8
更新。
但是运行命令后,我得到了Repository is not clean. Please commit or stash any changes before updating.
所以我在更改git之前就提交了,然后再次尝试使用相同的命令,然后又得到了相同的消息。现在没有要提交或存储的文件。
这是package.json
文件的依赖项:
"dependencies": {
"@angular/animations": "^8.0.0",
"@angular/cdk": "^7.3.7",
"@angular/common": "^8.0.0",
"@angular/compiler": "^8.0.0",
"@angular/core": "^8.0.0",
"@angular/forms": "^8.0.0",
"@angular/material": "^7.3.7",
"@angular/platform-browser": "^8.0.0",
"@angular/platform-browser-dynamic": "^8.0.0",
"@angular/router": "^8.0.0",
"core-js": "^2.5.4",
"hammerjs": "^2.0.8",
"ngx-loading": "^3.0.1",
"rxjs": "6.5.2",
"underscore": "^1.9.1",
"zone.js": "~0.9.1"
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.800.0",
"@angular/cli": "~8.0.2",
"@angular/compiler-cli": "^8.0.0",
"@angular/language-service": "^8.0.0",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"bootstrap-sass": "^3.3.7",
"codelyzer": "^5.0.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~2.0.0",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-scss-preprocessor": "^3.0.0",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1",
"typescript": "~3.4.5"
}
这是我收到的消息:
D:\test>ng update @angular/material@v8
Repository is not clean. Please commit or stash any changes before updating.
我删除了node_modules文件夹,并借助$ npm install --save
重新安装。安装后,我再次尝试,然后也收到相同的消息。
有人知道如何更新材料吗?
答案 0 :(得分:1)
如果您想绕过该警告,则应使用--allow-dirty
,它适用于@ angular / cli v8.0.1 +。
您用于更新@angular/material
的命令如下所示:
ng update @angular/material@v8 --allow-dirty
要更新所有软件包,可以使用:
ng update -all --allow-dirty
答案 1 :(得分:0)
运行git reset --hard
或git stash
,然后重试。
答案 2 :(得分:0)
您提到您有未跟踪的文件。这些导致检查失败(带有未跟踪文件的git存储库被认为是不干净的)。有关此here的更多信息。
您可以在此处查看ng
工具如何运行此检查:https://github.com/angular/angular-cli/blob/3d25d4cb/packages/angular/cli/commands/update-impl.ts#L351
您可以使用以下方式隐藏这些文件:
git stash save --include-untracked
并使用以下命令运行更新后取消隐藏它们:
git stash pop
您的其他选择是删除文件或将其添加到您的.gitignore
。
答案 3 :(得分:0)
这是Angular 8中的一个错误。您可以使用以下命令来解决:
ng update @angular/cli @angular/core --allow-dirty --force