引入codemirror时报错,webpack中resolve.extensions配置产生的问题

问题

在引入codemirror的时候,找不到对应的CodeMirror对应的函数。原因在于在CodeMirror库中lib的CodeMirror文件有2个,相同的名字。

举个例子,在CodeMirror/mode/javascript下的任一个js文件,都是报错的。
引入codemirror时报错,webpack中resolve.extensions配置产生的问题
这里引入了lib/CodeMirror,分析了下,是传入的CodeMirror缺失了对应的方法
引入codemirror时报错,webpack中resolve.extensions配置产生的问题
我们输出JS文件引入的情况。

引入codemirror时报错,webpack中resolve.extensions配置产生的问题
发现了如果没有指名后缀的话,无法找到正确的文件。
引入codemirror时报错,webpack中resolve.extensions配置产生的问题
这个导致的原因是lib文件夹下存在2个相同名字的文件。
引入codemirror时报错,webpack中resolve.extensions配置产生的问题
如果后缀名没有指名的话,这里判断的顺序是按照webpack配置的extensions顺序来决定的。
引入codemirror时报错,webpack中resolve.extensions配置产生的问题
这里CSS大于JS,所以优先引入的是css文件,这就导致了引入文件错误了。

这个时候只要改下引入顺序即可。

结果

引入codemirror时报错,webpack中resolve.extensions配置产生的问题
引入codemirror时报错,webpack中resolve.extensions配置产生的问题
引入就正常了。