首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将第三方模块导入Ember

将第三方模块导入Ember
EN

Stack Overflow用户
提问于 2016-06-10 12:08:01
回答 1查看 481关注 0票数 0

我试图将这个模块导入到Ember.js (Version2.5)应用程序中:

https://github.com/hapijs/nes/blob/master/lib/client.js

我就是这样做的(遵循文档):

代码语言:javascript
复制
app.import('bower_components/nes/lib/client.js', { exports: { 'nes': ['default', 'client'] } });

和进口报关单:

代码语言:javascript
复制
import client from 'nes';

现在,我不断地得到以下错误:

loader.js:201未明错误:找不到从myapp.com/components/chart-widget导入的模块nes

我假设import语句是正确的,并且实际模块不会以Ember可以使用它的方式导出自己。但是,我怎样才能解决它呢?是否有一种方法可以为第三方库编写一个包装器,比如这个库?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-10 22:10:41

TL:您的模块可以使用nes.Client作为全局变量访问。

你看错了指南中的部分。hapijs/nes不是一个标准的AMD资产,因此不能使用import关键字直接导入。这意味着您的库将在全局上下文中找到。

通过bower_components/nes/lib/client.js进行调试将显示代码正在分支--在本例中为:https://github.com/hapijs/nes/blob/master/lib/client.js#L24

您可以通过名为nes.Client的全局变量访问第三方模块。

如果您想使用ES6 import关键字来访问它以获得更多的清晰度,您可以生成一个供应商-shim,如指南https://ember-cli.com/user-guide/#managing-dependencies中所描述的那样。

请注意,这不会从全局上下文中删除nes,只允许您使用import关键字导入它。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37747919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档