在迁移到lit-element
版本时0.6.0
。如果我使用
<script src="node_modules/@webcomponents/webcomponentsjs/webcomponents-bundle.js"></script>
在header
我的文件的一部分。我有以下错误:
Uncaught (in promise) TypeError: Cannot read property 'previousSibling' of null
at NodePart._commitText (parts.ts:255)
at NodePart.commit (parts.ts:216)
at TemplateInstance.update (template-instance.ts:56)
at NodePart._commitTemplateResult (parts.ts:283)
at NodePart.commit (parts.ts:220)
at render (render.ts:48)
at Function.render (shady-render.ts:160)
at HTMLElement.update (lit-element.ts:44)
at HTMLElement._validate (updating-element.ts:600)
at HTMLElement._invalidate (updating-element.ts:574)
我无法追踪这个错误来自哪里,因为错误堆栈很大并且涉及很多异步调用。我还尝试重现一个最小的示例,但同样,我无法模拟相同的错误消息。此错误的后果是完全无法加载某些自定义元素(以至于应用程序无法使用)。
现在,如果我用这个更改标题脚本:
<script src="node_modules/@webcomponents/webcomponentsjs/webcomponents-loader.js"></script>
错误消失了。但现在控制台中出现以下警告消息:
检测到不兼容的 ShadyCSS 版本。(shady-render.ts:42)
请至少更新到@webcomponents/webcomponentsjs@2.0.2 和@webcomponents/shadycss@1.3.1。
这是一个有趣的消息,因为我的项目已经在使用webcomponentsjs
版本2.1.2
和shadycss
版本1.5.2
。除了这个警告消息之外,css 指令@apply
被完全忽略,导致接口不使用任何flex
属性(我让你想象一下混乱)。
现在这是一种我真的无法理解的行为,即使我花了整整一个下午的时间来研究文档和东西。我召唤你的帮助。