Webpack解决导入库的外部问题

时间:2018-08-24 22:20:20

标签: javascript es6-modules webpack-4

我正在尝试使用webpack创建一个库。我的主要目标主要是发布ES6模块文件,以便我的客户端应用程序以及导入和摇动该库。 (它应该是一个图标库,以便用户可以将其在应用程序中使用的图标捆绑在一起。)

我有一个将umd模块构建为dist的库,并且已经将package.json中的module字段设置为src目录文件,该文件导出了我的所有图标。

每个图标都是一个React组件。我已经导入了React和PropTypes来创建它们,并将它们设置为webpack配置中的外部对象,但是在这种情况下,我认为这并不重要,因为...

我制作了一个测试应用程序,该程序将npm链接到我的库,并从我的模块中导入了我的一个图标组件。肯定要去源文件,但是我在应用程序中的webpack无法解析这些模块中的reactprop-types。它抱怨每个组成部分。

例如:

Module not found: Error: Can't resolve 'react' in '/code/svg-icons/src/components'
@ ../svg-icons/src/components/AlertIcon.js
@ ../svg-icons/src/index.js
@ ./src/index.js

我认为这是有道理的,因为我库中的AlertIcon模块没有node_module目录来查找react

我如何让其他应用程序提供reactprop-types,以及我想在库的源模块中导入的其他内容?

1 个答案:

答案 0 :(得分:0)

对于您的svg-icons包,您只需要通过Babel运行它,然后将其移植到ES5就可以了。

您的依赖于svg-icons的应用程序将是用webpack构建的应用程序,它将负责将导入的图标捆绑到您的应用程序包中。

Kent C. Dodds on egghead.io开设了一门很棒的免费课程。它将为您清除该主题上的所有内容。