2018-04-25 dev-client.js

背景:

做了一个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等模块了

你可能感兴趣的:(2018-04-25 dev-client.js)