4

webpack配置文件的理解

webpack的配置文件是没有固定的命名的,在我的项目中建立了两个配置文件,一个是开发的配置文件webpack.config.js;另一个是上线的配置文件webpack.build.config.js。两者内容上的差别,在以后的文档中解释。它们是怎么执行不同的配置文件的尼?这才是重点。
在package.json文件中,有脚本的执行配置,如图:

clipboard.png
在我们的cmd命令行中,开发时:执行npm run dev;将执行我们的webpack.config.js文件;
最终上线时:执行npm run build;将执行我们的webpack.build.config.js文件;两者的内容有细微的差别。
这是对两个配置文件的理解。
每次编译代码时,手动的npm run dev 就会变得有点麻烦。
webpack提供了几个选项,可以帮助我们在代码发生变化后自动编译代码:
1、webpack's Watch Mode
2、webpack-dev-server
3、webpack-dev-middleware
多数场景中,使用webpack-dev-server。
参考官方文档:https://doc.webpack-china.org...
在我的项目中使用的是webpack-dev-sever。提供了一个简单的web服务器,并且能够实时重新加载(live reloading)
webpack.config.js

clipboard.png
参考webpack-dev-server文档:https://doc.webpack-china.org...

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的解读!!!可能存在一些不对的地方,希望指出!!!


六块腹肌的长者
76 声望10 粉丝

前端工程师