2016-06-10 126 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導入它。