我有一个私人图书馆,我已经转换为使用es6和webpack。如何以可以导入整个源树的方式包含此库?
库看起来像这样:
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
对于库导入,我导入一个文件:import moment from 'moment'
如何从portedlibrary
导入单个类?
当我尝试通过import {Class1} from 'portedlib'
导入类时,出现以下错误:
Module not found: Error: Can't resolve 'portedlibrary' in ...
答案 0 :(得分: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'