写在前面:

  了解更多:https://github.com/miaowwwww/webpack-learn

  贴一个webpack.ocnfig.js 的配置属性表    

一、代码分割:

  1.插件 CommonsChunkPlugin :提取vendor的插件,过滤每一个入口文件,提取公共的模块,放到一个vendor.js文件中

     

  2.css代码分割

    2.1引入插件(同时可以配置)

  

    2.2 配置loader

   

    2.3 plugin中加入

   

    2.4 若使用extractCss,extractLess两个则会出现verdon.css(公共css样式)

  3.使用 import() :使用jsonp技术加载

    3.1  npm install -save-dev babel-plugin-syntax-dynamic-import 现在是必须的,import()加入规范后就不是了

    3.2 配置babel-loader

    

    3.3 使用方法:好处,因为是promise,所以可以操作加载失败的情况

    

  4.使用require.ensure:使用jsonp技术加载

    好处:可以为异步模块定义[name](requireEnsure-chunk)

    

 二、生产与开发需要不同的webpack.config.js

  1.package中配置不同的script command

    

  2.webpack.config.js也是一个js模块,可以使用不同个参数配置,然后在npm 中加入参数值

    

   

  3. webpack-merge插件

    

三、缓存

  1.hash & chunkhash 

    hash:每一次编译就会发生变化

    chunkhash:文件内容变化,就会发生变化(webpack中,如果js文件引入了css文件,那么他们就是一个整体,某一个变都会导致chunkhash变化)

    建议:不要在开发中使用[chunkhash],因为这将增加编译时间。单独的开发和生产配置,并使用[name] .js用于开发,[name]。[chunkhash] .js用于生产。

    extract-text-webpack-plugin: 为打包出来的样式文件提供 contenthash,只要样式文件内容不变,就不会变化,

    webpack-md5-hash: 替代chunkhash, 因为若只要样式变化,js没变,chunkhash也会变化,这个令chunkansh,不会因为样式文件的变化而变化。

四、webpack-dev-server

  可以webpack.config.js中配置,常用属性: compress,port,host, hot, inline

   一个坑,下面的 hot 属性官网解析为是否启动热更新,然而并没有什么卵用,打开浏览器会说 HMR不可用, 需要在cmd中使用 --hot才行,  $ webpack-dev-server --hot

    devServer: {
// --告诉服务器从哪里提供内容。这只有在您想要提供静态文件时才需要。例如图片??
contentBase: path.join(__dirname, 'dist'),
// contentBase: false,
// --告诉服务器观看由devServer.contentBase选项提供的文件。文件更改将触发整个页面重新加载。
watchContentBase: true,
// --随所有内容启用gzip压缩
compress: true,
port: 9997,
host: '0.0.0.0',
// --这个是使用热更新的标志,然后并不提供热更新功能,需要引入hotModule
// hot:true, 不加入HotModuleReplacementPlugin,因为API无法访问您的webpack配置
// --hot添加它。 (因为CLI可以访问您的webpack配置)
hot: true,
// --在构建失败的情况下,启用热模块替换(请参阅devServer.hot)而不刷新页面作为回退。
hotOnly: true,
// --devtool控制台显示信息
clientLogLevel: 'none', //none, info, (warning,error 一直有)
// --延迟编译,对于异步模块,只有在请求时才会编译,在生产中不需要
lazy: true,
filename: "bundle.js",
// --为所有请求添加请求头
headers: {
"X-Custom-Foo": "bar"
},
// --使用HTML5 History API时,系统可能会放送index.html网页来取代404回应
historyApiFallback: true,
// historyApiFallback: {
// rewrites: [
// { from: /^\/$/, to: '/views/landing.html' },
// { from: /^\/subpage/, to: '/views/subpage.html' },
// { from: /./, to: '/views/404.html' }
// ]
// }
https: true, //使用https协议
// --在开发服务器的两种不同模式之间切换(--inline, --iframe)。默认情况下,将使用内联模式启用应用程序。这意味着一个脚本将插入到您的包中以处理实时重新加载,并且构建消息将显示在浏览器控制台中。
inline: true,
// --隐藏webpack打包是的信息
noInfo: true,
// --使用代理,需要 http-proxy-middleware 代理包,连接后台接口的时候使用
proxy: {
"/api": "http://localhost:3000"
// "/api": {
// target: "http://localhost:3000",
// pathRewrite: {"^/api" : ""},
// secure: false
// }
},
public: "myapp.test:80",
// --也是静态文件的目录, 相当于 output.publicPath
publicPath: "/assets/",
// --启用安静功能后,除了初始启动信息之外的任何内容都将写入控制台。这也意味着来自webpack的错误或警告不可见。
quiet: true
}

webpack2-webpack.config.js配置的更多相关文章

  1. webpack webpack.config.js配置

    安装指定版本的webpack npm install webpack@3.6 -g 安装live-server    运行项目插件   输入live-server  运行后自动打开网页 npm ins ...

  2. webpack.config.js配置遇到Error: Cannot find module '@babel/core'&&Cannot find module '@babel/plugin-transform-react-jsx' 问题

    下文是网上找到的方法,是因为版本冲突的原因,参照后安装7版本解决 cnpm install -D babel-loader@ babel-core babel-preset-env 一. 问题描述 在 ...

  3. webpack.config.js====配置babel

    参考:https://www.jianshu.com/p/9808f550c6a91. 安装依赖babel-loader: 负责 es6 语法转化babel-preset-env: 包含 es6.7 ...

  4. webpack.config.js配置信息的说明

    module.exports = { entry: "./src/main.js", output: { filename: "build/build.js" ...

  5. webpack.config.js配置入口出口文件

    目录结构: 新建webpack.config.js配置文件 const path = require('path') //导出 path是node内置的包 通过npm init初始化得到package ...

  6. webpack(4)webpack.config.js配置和package.json配置

    前言 上一篇文章我们使用webpack打包成功了,但是每次都要自己手动输入打包的文件地址和打包到哪里去的地址,非常麻烦,所以这里介绍使用配置文件进行打包 webpack.config.js 首先我们创 ...

  7. vue-cli的webpack模版,相关配置文件dev-server.js与webpack.config.js配置解析

    1.下载vue-cli npm install vue-cli -g vue-cli的使用与详细介绍,可以到github上获取https://github.com/vuejs/vue-cli 2.安装 ...

  8. webpack.config.js配置实例

    const path = require('path') const HtmlWebPackPlugin = require('html-webpack-plugin') // 导入 在内存中自动生成 ...

  9. webpack.config.js配置遇到Error: Cannot find module '@babel/core'问题

    在webpack配置,将ES6转成ES5的时候,,出现Error: Cannot find module '@babel/core'错误最初以为是babel-core没有安装上.重装了好几遍babel ...

  10. 关于自己配置有关webpack.config.js和vue项目搭建相关步骤

    ## Webpack的配置和使用 ### 安装 1. 全局安装 ``` npm install webpack -g ``` 2. 本地安装 ``` npm install webpack -D `` ...

随机推荐

  1. float 浮动 文档流和文字流区别

    关于float属性的脱离文档流的问题 使用float浮动后,元素虽然会脱离文档流,但还处在文本流的位置当中,所以就不会出现重叠的效果吗? 下面我自己试了一下,给两个DIV分别设置了样式,而只给第一个D ...

  2. 一分钟看懂Docker的网络模式和跨主机通信

    文章转载自:http://www.a-site.cn/article/169899.html   Docker的四种网络模式Bridge模式 当Docker进程启动时,会在主机上创建一个名为docke ...

  3. mysql 03

    CREATE TABLE class(    empno INT,    ename VARCHAR(4),    job VARCHAR(4),    mgr INT,    hiredate DA ...

  4. springboot+自定义注解实现灵活的切面配置

    利用aop我们可以实现业务代码与系统级服务例如日志记录.事务及安全相关业务的解耦,使我们的业务代码更加干净整洁. 最近在做数据权限方面的东西,考虑使用切面对用户访问进行拦截,进而确认用户是否对当前数据 ...

  5. Python调用C++DLL函数出错String类型问题

    调用c++ 函数原型如下,一直失败,请个日志断点发现 参数未能正确解析. int EXPORT init_ner(string cfg_path); typedef int (*Proc_init_n ...

  6. Robot Framework环境搭建(问题总结)

    Robot Framework+python+wxpython+robotframework-ride+library环境搭建问题总结 因为robotframework的兼容性问题要求很严格,小编在环 ...

  7. c++ 网络编程(三) LINUX/windows 进程间的通信原理与实现代码 基于多进程的服务端实现

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/9613027.html 锲子:进程与线程是什么,他们的区别在哪里: 1 进程概念 进程是程序的一 ...

  8. mysql 5.6 windows7 解压缩版安装的坑

    从官网下载了解压缩版的mysql ,解压缩后,配置好环境变量,运行安装命令,提示我 缺失ddl文件,然后百度,找到了一个windows 系统组件扫描安装缺失组件的程序,然后继续安装,遇到了 初始化密码 ...

  9. Memcached 查询stats及各项状态解释

    一.两个最常用状态查询(掌握第一个就完全OK了) 1)查看状态:printf “stats\r\n” |nc 127.0.0.1 11211      2)模拟top命令查看状态:watch “ech ...

  10. YII2使用gii

    在 config/web.php 文件中会有以下配置代码开启该模块: $config['bootstrap'][] = 'gii'; $config['modules']['gii'] = [ 'cl ...