2016-12-07 146 views
1

我有一個私人圖書館已經轉換爲使用es6和webpack。如何以可導入整個源代碼樹的方式包含此庫?Babel/webpack依賴關係

庫看起來是這樣的:

portedlibrary

src/dir1/Class1.js 
src/dir1/Class2.js 

而且我的應用程序是這樣的:

應用

src/app.js 
src/app2.js 
node_modules/portedlib/src/dir1/Class1.js 
node_modules/portedlib/src/dir1/Class2.js 

對於內部進口,我可以使用相對路徑功能:import {app2} from './app2 F或庫導入,我導入一個文件:import moment from 'moment'

如何從portedlibrary導入單個類?

當我嘗試通過import {Class1} from 'portedlib'我收到以下錯誤導入類: Module not found: Error: Can't resolve 'portedlibrary' in ...

+1

你可以從'「portedlib/src目錄/ d進口的Class1 ir1/Class1';',你在找什麼? – loganfsmyth

+0

@loganfsmyth,那也行!我會把它作爲snwer發佈。 –

回答

1

轉口每個默認出口作爲一個名叫出口在另一個文件(例如:index.js這樣你就可以通過引用的lib它的名字):

// node_modules/portedlib/index.js 
export { default as Class1 } from './src/dir1/Class1' 
export { default as Class2 } from './src/dir1/Class2' 

然後將它們導入:

import { Class1, Class2 } from 'portedlib' 
+0

是否有工具可以從源代碼樹手動創建此全局導出?或者我只需要手動枚舉所有導出? –