如何使用旧版本的 ember 和 ember-light-table 解决 TypeError?
How can I resolve a TypeError using old version of ember and ember-light-table?
我在https://github.com/ericg-ember-questions/test_computed_sort
有测试项目
我通过执行以下操作来设置项目:
节点版本:v12.18.1 (npm v6.14.5)
- npm install --save-dev ember-cli@3.4
- ./node_modules/.bin/ember 新 test_computed_sort
- cd test_computed_sort/
- ./node_modules/.bin/ember 安装 ember-light-table@1.13.2
- ./node_modules/.bin/ember 生成组件 test-comp
- ./node_modules/.bin/ember 服务
{{test-comp}}
Hello
{{#light-table}}
{{/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?
错误有点暗示这一点,但除非您使用的是现代 ember,否则它并没有真正意义——但您使用的是 3.4(感谢您提供该信息!!)
您的错误中的堆栈实际上非常有用,您可以通过以下方式找出问题所在。
我下载了您的复制存储库(感谢提供!复制对调试非常有帮助!)
我遇到了和你一样的错误:
这里的关键部分是 media.js 参考。
点进去我们看到:
ember-responsive/services/media
文件的编译版本正在使用装饰器 --
您的应用程序中有某个版本的 ember-responsive,其中包含装饰器。
我在您的 package.json 中看到您指定的桤木版本:
"ember-responsive": "^4.0.2",
此 v4 版本 ember-responsive 仅支持 ember 3.13 及更高版本。
有点在 ember-responsive github、https://github.com/freshbooks/ember-responsive/blob/v3.0.5/config/ember-try.js
周围闲逛
我看到 ember-responsive 的 v3 系列支持回到 Ember 2.12 -- 肯定在装饰器之前支持。
所以降级 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 使用问题。
如果您需要帮助解决这个问题,请随时 post 另一个问题。
我在https://github.com/ericg-ember-questions/test_computed_sort
有测试项目我通过执行以下操作来设置项目:
节点版本:v12.18.1 (npm v6.14.5)
- npm install --save-dev ember-cli@3.4
- ./node_modules/.bin/ember 新 test_computed_sort
- cd test_computed_sort/
- ./node_modules/.bin/ember 安装 ember-light-table@1.13.2
- ./node_modules/.bin/ember 生成组件 test-comp
- ./node_modules/.bin/ember 服务
{{test-comp}}
Hello
{{#light-table}}
{{/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?
错误有点暗示这一点,但除非您使用的是现代 ember,否则它并没有真正意义——但您使用的是 3.4(感谢您提供该信息!!)
您的错误中的堆栈实际上非常有用,您可以通过以下方式找出问题所在。
我下载了您的复制存储库(感谢提供!复制对调试非常有帮助!)
我遇到了和你一样的错误:
这里的关键部分是 media.js 参考。
点进去我们看到:
ember-responsive/services/media
文件的编译版本正在使用装饰器 --
您的应用程序中有某个版本的 ember-responsive,其中包含装饰器。
我在您的 package.json 中看到您指定的桤木版本:
"ember-responsive": "^4.0.2",
此 v4 版本 ember-responsive 仅支持 ember 3.13 及更高版本。
有点在 ember-responsive github、https://github.com/freshbooks/ember-responsive/blob/v3.0.5/config/ember-try.js
周围闲逛我看到 ember-responsive 的 v3 系列支持回到 Ember 2.12 -- 肯定在装饰器之前支持。
所以降级 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 使用问题。
如果您需要帮助解决这个问题,请随时 post 另一个问题。