angular - 从 Angular 5 升级到 Angular 6 后 : Current document does not have a doctype

标签 angular typescript npm angular-material angular6

我刚刚将我的 Angular 5 项目升级到 Angular 6。升级后编译正常,但网站显示空白。在控制台中我得到:

Current document does not have a doctype. This may cause some Angular Material components not to behave as expected. push../node_modules/@angular/material/esm5/core.es5.js.MatCommonModule._checkDoctypeIsDefined @ core.es5.js:127 MatCommonModule @ core.es5.js:92 _createClass @ core.js:8116 createProviderInstance$1 @ core.js:8088 initNgModule @ core.js:8024 NgModuleRef @ core.js:8747 createNgModuleRef @ core.js:8736 debugCreateNgModuleRef @ core.js:10561 push../node_modules/@angular/core/fesm5/core.js.NgModuleFactory_.create @ core.js:11263 (anonymous) @ core.js:4161 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:388 onInvoke @ core.js:3671 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:387 push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:138 push../node_modules/@angular/core/fesm5/core.js.NgZone.run @ core.js:3585 push../node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModuleFactory @ core.js:4159 (anonymous) @ core.js:4200 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invoke @ zone.js:388 push../node_modules/zone.js/dist/zone.js.Zone.run @ zone.js:138 (anonymous) @ zone.js:872 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask @ zone.js:421 push../node_modules/zone.js/dist/zone.js.Zone.runTask @ zone.js:188 drainMicroTaskQueue @ zone.js:595 Promise.then (async)
scheduleMicroTask @ zone.js:578 push../node_modules/zone.js/dist/zone.js.ZoneDelegate.scheduleTask @ zone.js:410 push../node_modules/zone.js/dist/zone.js.Zone.scheduleTask @ zone.js:232 push../node_modules/zone.js/dist/zone.js.Zone.scheduleMicroTask @ zone.js:252 scheduleResolveOrReject @ zone.js:862 ZoneAwarePromise.then @ zone.js:962 push../node_modules/@angular/core/fesm5/core.js.PlatformRef.bootstrapModule @ core.js:4200 ./src/main.ts @ main.ts:12 webpack_require @ bootstrap:76 0 @ main.ts:13 webpack_require @ bootstrap:76 checkDeferredModules @ bootstrap:43 webpackJsonpCallback @ bootstrap:30 (anonymous)

TypeError: Cannot read property 'appendChild' of null at MatCommonModule.push../node_modules/@angular/material/esm5/core.es5.js.MatCommonModule._checkThemeIsPresent (core.es5.js:141) at new MatCommonModule (core.es5.js:93) at _createClass (core.js:8116) at createProviderInstance$1 (core.js:8088) at initNgModule (core.js:8024) at new NgModuleRef (core.js:8747) at createNgModuleRef (core.js:8736) at Object.debugCreateNgModuleRef [as createNgModuleRef] (core.js:10561) at NgModuleFactory_.push../node_modules/@angular/core/fesm5/core.js.NgModuleFactory_.create (core.js:11263) at core.js:4161

这是 @angular/material 有问题,还是项目中有什么地方没有正确升级?

如果我可以添加任何内容来帮助诊断,请告诉我。

最佳答案

如果你想删除这个警告,只需在你的通用 index.html 文件的顶部添加一个 Doctype,就像这样:

<!doctype html>
<html lang="en">
<head>
  ...
</html>

关于angular - 从 Angular 5 升级到 Angular 6 后 : Current document does not have a doctype,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50768703/

相关文章:

Angular2 为什么 --base-href 构建选项不起作用

angular - 在@angular/cdk 中找不到拖放

Angular 5 : opening a component inside a popup/dialog, 添加内容的最佳实践?

typescript - typescript 中的顺序 promise

heroku - 在 npm 脚本中使用 process.env 变量

Angular MatTableDataSource 错误

angular - 从映射生成类型/接口(interface)列表

javascript - 将一些库导入 Angular

javascript - 如何将自定义表情符号上传到我的 Discord 机器人

node.js - 在 Windows : rolling back Error: EPERM, 上安装 PhantomJS 取消链接 phantomjs.exe