ES6编写的模块发布npm包的坑
问题:采用ES6语法编写的模块,通过export导出,webpack打包转换成ES5,然后发布npm。再使用的时候通过import方式引入的时候会是个空对象。
原因:因为webpack配置的时候忘了参数libraryTarget: 'commonjs2'。需要加上该参数就可以了,如图:
解析:
我们期望的是logger.js
符合commonjs规范,但是我们在配置中并没有指出,所以webpack打包出来的文件,什么也没导出。加上该参数,指出让webpack是按照commonjs规范导出变量。