如何使用旧版本的ember和ember灯表解决TypeError?

jq6vz3qz  于 2022-10-20  发布在  其他
关注(0)|答案(1)|浏览(134)

我在https://github.com/ericg-ember-questions/test_computed_sort有测试项目
我通过执行以下操作来设置项目:
节点版本:v12.18.1(npm v6.14.5)
1.npm安装--保存devember-cli@3.4
1./node_modules/。bin/ember新的testcomputed_sort
1.cd测试计算端口/
1../node_modules/节点模块/。垃圾箱/ember安装ember-light-table@1.13.2
1./node_modules/。bin/ember生成组件测试组件
1./node_modules/。垃圾箱/ember
application.hbs

{{test-comp}}

i1 j2 k1 l

Hello

{{#light-table}}
{{/light-table}}

如果我注解掉对灯光表的引用,则不会生成错误。然而,通过它,我在控制台中看到:

media.js:15 Uncaught TypeError: decorator is not a function
    at media.js:15:1
    at Array.reduce (<anonymous>)
    at _applyDecoratedDescriptor (media.js:15:1)
    at Module.callback (media.js:240:1)
    at Module.exports (loader.js:106:1)
    at Module._reify (loader.js:143:1)
    at Module.reify (loader.js:130:1)
    at Module.exports (loader.js:104:1)
    at requireModule (loader.js:27:1)
    at Class._extractDefaultExport (index.js:432:1)

我可以做什么来解决这个错误,以便在这个项目中使用ember-light-table

5fjcxozz

5fjcxozz1#

这个错误有点暗示了这一点,但除非您使用的是现代ember,否则它实际上没有意义——但您使用的却是3.4(感谢您提供了这些信息!!)
错误中的堆栈实际上非常有用,下面是您如何找出问题所在。
我下载了您的复制副本(谢谢您提供!复制副本对调试非常有帮助!)
我得到了与您相同的错误:

这里的关键是媒体。js参考。点击进入,我们看到:

ember-responsive/services/media文件的编译版本使用了decorator——您的应用程序中有一些版本的emberresponsive,它有decorator。
我在你的包裹里看到了。json,您在alder版本上指定的:

"ember-responsive": "^4.0.2",

emberresponse的v4版本仅支持ember3.13及更高版本。
有点像是在摸索响应ember的github,https://github.com/freshbooks/ember-responsive/blob/v3.0.5/config/ember-try.js
我看到,ember-responsive的v3系列支持ember 2.12——肯定是在支持decorator之前。
因此,降级ember-responsive并重新启动应用程序会显示此错误:

"Assertion Failed: [ember-light-table] table must be an instance of Table"

这个错误记录在这里:https://github.com/adopted-ember-addons/ember-light-table/issues/726
所以看起来像是一些API使用问题。
如果你想得到帮助,请随时提出另一个问题。

相关问题