webpack的alias可以忽略node_modules吗

webpack配置的别名与node_modules里的一个包引用的另一个包重名了.

我配置了别名@vue指向一个我修改过的vue,但是某个组件包里又引用了@vue/xxx,导致引用指向错误.

麻烦的地方在于,因为用DllReferencePlugin@vue打包到另一个包,这个包放CDN,轻易不会更改.如果要修改这个别名,就必须把dll.config的别名同步修改.

那么问题来了.
1.怎么才能配置使alias只对源码生效,而忽略node_modules?
2.如何不影响DLL插件正常使用?

我尝试了将@vue修改为@vue$,这样两处都能够正确引用,但是查看包依赖,vue也被打包进来了,这不符合预期.

有个配置enforceModuleExtension,只对node_modules生效,可惜是给enforceExtension打补丁的.
翻阅文档webpack.resolve,没有找到有用的信息.

比较有希望的是plugins配置项,但不清楚这个选项的配置支持的插件是否与webpack插件一致?

阅读 2.4k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题