博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack系列-配置篇
阅读量:6712 次
发布时间:2019-06-25

本文共 3386 字,大约阅读时间需要 11 分钟。

watch

监听文件变化来进行webpack打包

watch:true,    watchOptions:{ // 监控选项        poll:1000, // 每秒问我1000次        aggregateTimeout:500, // 防抖        ignored:/node_modules/ // 不监控的文件            }复制代码

多页

module.exports = {        entry:{            index:'./src/index.js',            other:'./src/other.js'        },        output:{            filename:[name].[hash:8].js,            path:path.resolve('./dist')        },        plugins:[            new HtmlWebpackPlugin({                template:'./src/index.html',                filename:'index.html',                chunks:['index']            }),            new HtmlWebpackPlugin({                template:'./src/index.html',                filename:'other.html',                chunks:['other']            })        ]    }复制代码

resolve

解析第三方模块,定义别名、查找后缀等配置。

module.exports = {        resolve:{             modules: [path.resolve('node_modules')], // 第三方模块的解析文件夹            //mainFiles:['a.js','index.js'], // 入口文件的配置            //mainFields:['style','main'],// 入口字段的配置            alias: { // 别名              'bootstrap': 'bootstrap/dist/css/bootstrap.css'            },            // 配置我们的后缀            extensions: ['.js', '.json', '.css']        }    }复制代码

noParse

如果当前模块没有依赖项了,可以配置此项来不在进行解析

module:{        noParse:/jquery/ // 如果确定没有依赖的可以加载这里    }复制代码

IgnorePlugin

忽略插件的某些包

// 如果 发现moment中引入了 locale那就忽略掉    new webpack.IgnorePlugin(/\.\/locale/,/moment/),复制代码

DefinePlugin

定义一些常量

new webpack.DefinePlugin({      // 定义的变量 需要用json.stringfy包裹      DEV:JSON.stringify('development'), // console.log("development"),      EXPRESSION:'1+1',      FLAG:'true' ,//console.log(true)    }),复制代码

webpack-merge

合并文件,开发环境和生产环境分开配置。

let base = require('./webpack.base.js');    let merge = require('webpack-merge');    let dev = {      mode:'development'          }    module.exports = merge(base, dev);复制代码

webpack-dev-middleware

服务端打包

let express = require('express');    let webpack = require('webpack')    let config = require('./webpack.config.js');    let compiler = webpack(config); // 产生编译    // 在后端中 引入webpack 启动服务    let middle = require('webpack-dev-middleware');        let app = express();    app.use(middle(compiler));    app.get('/api/user',async (req,res)=>{      res.json({name:'zfpx'});    })        app.listen(3000);复制代码

cleanWebpackPlugin、copyWebpackPlugin、BannerPlugin

清空文件、拷贝文件、文件签名

new CleanWebpackPlugin(['./dist']),    new CopyWebpackPlugin([{ // 拷贝静态资源插件    from:'./assets',    to:'./'    }]),    new webpack.BannerPlugin('make by xx in 2019'),复制代码

proxy代理配置、before钩子mock假数据

//可以mock 自己的数据    before(app){ // 默认webpack-dev-server 启动的时候 会调用这样的before钩子 , app 是 我们 express()      app.get('/api/user',(req,res)=>{        res.json({name:'jw'});      })    }    //前端 会用nginx    proxy:{ // 只对开发的时候有效      '/api':{        target:'http://localhost:3000',        pathRewrite:{          '/api':''        }      }    }    复制代码

devtool

  • source-map 生成一个源文件的映射,反映报错信息。
  • cheap-module-source-map 没有列信息
  • eval-source-map 会打包在当前文件中
  • cheap-module-eval-source-map 文件中没有列信息
devtool:'source-map', // 告诉webpack 生成一个map,会标识源码中哪行哪列报错了  devtool:'cheap-module-eval-source-map', // 是一个在文件中的source-map  没有列  devtool:'eval-source-map', // 当前打包的js中  devtool:'cheap-module-source-map'  watch:true, // 监听打包 babel --watch  watchOptions:{ // 监控的选项    poll:1000, // 以秒为单位 轮询    // 防抖 只要不停的触发事件只执行最后一次 节流 每隔多少ms 触发一次    aggregateTimeout:2000,    ignored:/node_modules/  },复制代码

转载地址:http://fmolo.baihongyu.com/

你可能感兴趣的文章
STM32 常用GPIO操作函数记录
查看>>
XML:使用DOM技术解析xML文件中的城市,实现select级联选择
查看>>
JQuery:JQuery添加元素
查看>>
图解GitHub基本操作
查看>>
linux集群时间同步搭建
查看>>
C++12.1.4 类的前向声明、不完全类型类
查看>>
H5以及Node读取excel
查看>>
Nginx基础篇(1)- Nginx的快速搭建和基本参数
查看>>
opencv python K-Means聚类
查看>>
从DevOps到AIOps,阿里如何实现智能化运维?
查看>>
Vue中的RouteMock实现思路及其问题
查看>>
前端每日实战:25# 视频演示如何用纯 CSS 创作一个慧星拖尾效果的 loader 动画...
查看>>
2018年第18周-Java语言思想-并发
查看>>
Node.js EventEmitter解读
查看>>
innodb事务隔离级别及实现机制
查看>>
分布式服务Dubbo的前世今生
查看>>
Forge模型转换和网页浏览在Android上的实践
查看>>
对React Native中Reduce理解
查看>>
greenDao多表关联
查看>>
【译】Vertical-Align: All You Need To Know
查看>>