背景:
做了一个cli命令行工具,给项目使用,所以不希望项目再去配置webpack和dev-server, 类似于roadhog之类的工具
需要解决2个问题:
-
webpack.config.js
中需要加载的各种Loader
, 以及babel
的各种presets
/plugins
解决办法:预置的
webpack.config.js
中的loader
以及plugins
或以通过require.resolve
拿到cli中的绝对路径
- 热更新功能
使用webpack-dev-server时,需要给客户端打入收下内容,用于和dev-server通信,以及hot-module-replace功能支持
// dev-client.js
import 'webpack-dev-server/client?/'
import 'webpack/hot/dev-server'
因为webpack/ webpack-dev-server只在cli工具中被依赖,没有添加到项目只身,同时cli工具是全局安装,并不在当前项目的依赖中, 运行时会无法找到对应模块,webpack/hot/dev-server
以及 webpacck-dev-server/client
本身是可以通过require.resolve
来找到的,但是其内部require
的其他模块无法找到。
解决办法:暂时不清楚怎么处理依赖查找路径问题。只能绕过:将dev-client.js提前编译,生成一个dev-client.js, 消除动态加载,也就不再需要去找webpack/hot/dev-server等模块了