webpack配置文件的理解
webpack的配置文件是没有固定的命名的,在我的项目中建立了两个配置文件,一个是开发的配置文件webpack.config.js;另一个是上线的配置文件webpack.build.config.js。两者内容上的差别,在以后的文档中解释。它们是怎么执行不同的配置文件的尼?这才是重点。
在package.json文件中,有脚本的执行配置,如图:在我们的cmd命令行中,开发时:执行npm run dev;将执行我们的webpack.config.js文件;最终上线时:执行npm run build;将执行我们的webpack.build.config.js文件;两者的内容有细微的差别。这是对两个配置文件的理解。每次编译代码时,手动的npm run dev 就会变得有点麻烦。webpack提供了几个选项,可以帮助我们在代码发生变化后自动编译代码:1、webpack's Watch Mode2、webpack-dev-server3、webpack-dev-middleware多数场景中,使用webpack-dev-server。参考官方文档:在我的项目中使用的是webpack-dev-sever。提供了一个简单的web服务器,并且能够实时重新加载(live reloading)webpack.config.js
参考webpack-dev-server文档:
devServer:{ contentBase:目录文件所在的位置, historyApiFallback:任意的404响应都可能需要被替代为index.html.一般默认true. historyApiFallback:{ rewrites:[ {from:/^\/$/,to:'/views/landing.html'}, #以根‘/’开始,以根‘/’结尾的请求,重定向到‘/views/landing.html’ {from:/^\/subpage/,to:'views/subpage.html'}, #以‘/subpage’开始的请求,重定向到‘views/subpage.html’ {from:/./,to:'/views/404.html'} #不匹配上面的任意除了换行符之外的请求,重定向到‘/views/404.html’ ] } inline:boolen;在dev-server的两种不同模式之间的切换。默认启用内联模式( inline mode),处理实时重载的脚本被插入到你的包(bundle)中,并且构建消息将会出现在浏览器控制台。 progress:boolen;用于命令行工具,将运行进度输出到控制台。 port:number;指定要监听请求的端口号 index:string;索引文件的文件名 host:string;指定使用一个host.默认是localhost。ip地址 proxy:object;代理配置,代理后端开发服务器API,并且希望在同域名下发送API请求。 }
这是对webpack.config.js中对webpack-dev-server的解读!!!可能存在一些不对的地方,希望指出!!!