2016-06-10 92 views
0

我试图导入该模块为Ember.js(版本2.5)应用:导入第三方模块成灰烬

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

这是我正在做(继docs ):

app.import('bower_components/nes/lib/client.js', { exports: { 'nes': ['default', 'client'] } }); 

,进口报关:

import client from 'nes'; 

现在我不断收到以下错误:

loader.js:201 Uncaught Error: Could not find module nes imported from myapp.com/components/chart-widget

我认为import语句是正确的,实际的模块不导出自己的方式灰烬可以使用它。但是,我该如何解决它?有没有办法在第三方库(如这个)上编写包装?

+0

你可以从'component/chart-widget'中粘贴你实际导入模块的行吗? –

+0

请参阅更新的问题。我也尝试从'nes'导入像import {client}并从'nes'中导入nes,但实际上并不工作... –

回答

2

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关键字访问它以获得更加清晰的信息,您可以按照指南https://ember-cli.com/user-guide/#managing-dependencies中的说明生成供应商填充。

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