因此,使用JSPM构建我的angular2项目以发布:jspm bundle-sfx app dist/main.sfx.js
。一切都很好,直到我尝试在浏览器中加载构建的应用程序。这是我得到的错误:`
EXCEPTION: Error during instantiation of AnimationDriver! (ViewUtils -> RootRenderer -> DomRootRenderer -> AnimationDriver
ORIGINAL EXCEPTION: TypeError: Cannot read property 'animate' of null
完整日志如下:
The key "target-densitydpi" is not supported.
EXCEPTION: Error during instantiation of AnimationDriver! (ViewUtils -> RootRenderer -> DomRootRenderer -> AnimationDriver).
EXCEPTION: Error during instantiation of AnimationDriver! (ViewUtils -> RootRenderer -> DomRootRenderer -> AnimationDriver).
ORIGINAL EXCEPTION: TypeError: Cannot read property 'animate' of null
ORIGINAL STACKTRACE:
TypeError: Cannot read property 'animate' of null
at BrowserDomAdapter.supportsWebAnimation (browser_adapter.js:507)
at _resolveDefaultAnimationDriver (browser.js:95)
at ReflectiveInjector_._instantiate (reflective_injector.js:468)
at ReflectiveInjector_._instantiateProvider (reflective_injector.js:410)
at ReflectiveInjector_._new (reflective_injector.js:399)
at ReflectiveInjectorDynamicStrategy.getObjByKeyId (reflective_injector.js:275)
at ReflectiveInjector_._getByKeyDefault (reflective_injector.js:571)
at ReflectiveInjector_._getByKey (reflective_injector.js:548)
at ReflectiveInjector_._getByReflectiveDependency (reflective_injector.js:539)
at ReflectiveInjector_._instantiate (reflective_injector.js:441)
EXCEPTION: Error during instantiation of AnimationDriver! (ViewUtils -> RootRenderer -> DomRootRenderer -> AnimationDriver).
EXCEPTION: Error during instantiation of AnimationDriver! (ViewUtils -> RootRenderer -> DomRootRenderer -> AnimationDriver).
ORIGINAL EXCEPTION: TypeError: Cannot read property 'animate' of null
ORIGINAL STACKTRACE:
TypeError: Cannot read property 'animate' of null
at BrowserDomAdapter.supportsWebAnimation (browser_adapter.js:507)
at _resolveDefaultAnimationDriver (browser.js:95)
at ReflectiveInjector_._instantiate (reflective_injector.js:468)
at ReflectiveInjector_._instantiateProvider (reflective_injector.js:410)
at ReflectiveInjector_._new (reflective_injector.js:399)
at ReflectiveInjectorDynamicStrategy.getObjByKeyId (reflective_injector.js:275)
at ReflectiveInjector_._getByKeyDefault (reflective_injector.js:571)
at ReflectiveInjector_._getByKey (reflective_injector.js:548)
at ReflectiveInjector_._getByReflectiveDependency (reflective_injector.js:539)
at ReflectiveInjector_._instantiate (reflective_injector.js:441)
InstantiationError {_wrapperMessage: "DI Exception", _originalException: TypeError: Cannot read property 'animate' of null
at BrowserDomAdapter.supportsWebAnimation (htt…, _originalStack: "TypeError: Cannot read property 'animate' of null↵… (https://randohinn.com/w2w/main.sfx.js:47702:34)", _context: null, _wrapperStack: "Error: DI Exception↵ at InstantiationError.Wrap… (https://randohinn.com/w2w/main.sfx.js:47702:34)"…}
什么可能导致这样的错误?
答案 0 :(得分:21)
当我将angular2应用与webpack捆绑在一起时,我遇到了同样的错误。事实证明,在我的情况下,它抱怨document.body
是null
。如果您在head
部分之前的body
中包含脚本并且脚本立即尝试使用document.body
进行操作,则会发生这种情况。
我的index.html是这样的:
<!DOCTYPE html>
<html>
<head>
<base href="">
<title>Legal Review</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="build/thirdparty.js"></script>
<script src="build/app.js"></script>
</head>
<body>
<app-component>
Loading...
</app-component>
</body>
</html>
所以,我已经移动了这样的脚本:
<!DOCTYPE html>
<html>
<head>
<base href="">
<title>Legal Review</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>
<app-component>
Loading...
</app-component>
<script src="build/thirdparty.js"></script>
<script src="build/app.js"></script>
</body>
</html>
现在它运作正常。