webpack理论完整版

有关于webpack官方文档的粗略学习,暂时告一段落,关于webpack是如何将项目整体构建包括代替gulp和grunt的打包功能,有待在实际项目中更深一步的实践。毕竟已经有一段时间不用了,知识在于巩固,不巩固是真的会生疏的,而且webpack4新鲜出炉,号称实现零配置。而且最近后天同学在进行关于spring boot 和spring cloud的学习,据了解也是零配置。感觉技术虽然越来越多,但是“懒人”还是大有人在,俗话说懒促进了世界的发展。那么,下次研究webpack4之后再来分解。

一下是关于上次webpack笔记的更新:

webpack

应用程序静态模块打包器

webpack-dev-server 为你提供了一个简单的web服务器,并且能够实时重新加载,

npm install —save-dev webpack-dev-server

当使用 webpack dev server 和 Node.js API 时,不要将 dev server 选项放在 webpack 配置对象(webpack config object)中。而是,在创建选项时,将其作为第二个参数传递

const webpackDevServer = require(‘webpack-dev-server‘); // 服务依赖

const webpack = require(‘webpack’); // webpack依赖

const config = require(‘./webpack.config.js‘); // webpack的config依赖

const options = { dev-server的配置

contentBase: ‘./dist‘,

hot: true,

host: ‘localhost‘

};

webpackDevServer.addDevServerEntrypoints(config, options);

const compiler = webpack(config);

const server = new webpackDevServer(compiler, options);

server.listen(5000, ‘localhost‘, () => {

console.log(‘dev server listening on port 5000‘);

});

webpack的开发和生产环境是不同的,开发环境要去有强大的实时重新加载模块和热替换模块,生产环境要求更快的加载时间,更优化的资源应用。

但是还是要遵循DRY原则:

webpack-demo

|- package.json

- |- webpack.config.js

+ |- webpack.common.js

+ |- webpack.dev.js

+ |- webpack.prod.js

|- /dist

|- /src

|- index.js

|- math.js

|- /node_modules

依据此项目目录,我们提取出开发环境和生产环境公共的代码,

webpack.common.js:

+ const path = require(‘path‘);

+ const CleanWebpackPlugin = require(‘clean-webpack-plugin‘);

+ const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);

+

+ module.exports = {

+   entry: {

+     app: ‘./src/index.js‘

+   },

+   plugins: [

+     new CleanWebpackPlugin([‘dist‘]),

+     new HtmlWebpackPlugin({

+       title: ‘Production‘

+     })

+   ],

+   output: {

+     filename: ‘[name].bundle.js‘,

+     path: path.resolve(__dirname, ‘dist‘)

+   }

+ };

webpack.dev.js:

+ const merge = require(‘webpack-merge‘);

+ const common = require(‘./webpack.common.js‘);

+

+ module.exports = merge(common, {

+   devtool: ‘inline-source-map‘,

+   devServer: {

+     contentBase: ‘./dist‘

+   }

+ });

webpack.prod.js:

+ const merge = require(‘webpack-merge‘);

+ const UglifyJSPlugin = require(‘uglifyjs-webpack-plugin‘);

+ const common = require(‘./webpack.common.js‘);

+

+ module.exports = merge(common, {

+   plugins: [

+     new UglifyJSPlugin()

+   ]

+ });

防止重复的CommonsChunkPlugin

CommonsChunkPlugin的另一个少有人知道的功能是,能够在修改的构建结果中,将webpack的样板(bolierplate)和manifest提取出来。通过enter配置中未用到的名称,此插件会自动将我们需要的内容提取到单独的包中

ExtractTextPlugin :将css从主应用程序中分离

bundle-loader  : 用于分离代码和延迟加载生成的bundle

promise-loader :类似于bundle-loader :但使用的是promises

动态导入:

1 import  (会调用到内部的promises)

polyfill 垫片 支持新的javascript代码,不支持新的api

懒加载/按需加载

缓存:

在部署新版本时,不更改资源文件的名字的话,浏览器就认为此文件没有被更新,就会使用它的缓存版本。通过output.filename进行文件名的更改,可以确保浏览器获取到修改后的文件

hash替换可以用于在文件名中包含一个构建相关的(build-specific)的hash,但是更好的方式是使用chunkhash替换,在文件名中包含一个(chunk-specific)的哈希

创建library

除了打包应用程序代码,webpack还用于打包js  library

typeSctript

module.export = {

entry : ‘./src/index.ts’,

module : {

rules : [

test : /\.tsx?$/,

use  : ‘ts-loader’,

exclude : /node-modules/

]

},

resolve : {

extensions : [‘.tsx’,’.ts’,’.js’]

},

output : {

filename : ‘bundle.js’,

path :path.resolve(__dirname ,’dist’)

}

}

渐进式网络应用程序(Progressive Web Application)

可以做很多事情,最重要的事是可以在离线时继续运行。这是使用名为Service Workers的网络技术来实现的

——service workers(服务工作线程,走的不同于页面的js线程)

是浏览器在后台独立与网页运行的脚本。这些脚本应用与不需要网页的用户交互功能。现在他包括推送通知和后台同步的功能,将来,服务工作线程会支持定期同步和地理围栏的功能。本教程讨论的核心功能是拦截和处理网络请求,包括通过程序来管理缓存中的响应。

首次实施服务工作线程时,可以通过chrome://serviceworker-internals 来查看服务工作线程详情。

最终实现的是,停止服务器然后刷新,仍然可以查看应用程序正常运行

1添加workbox

添加workbox-webpack-plugin插件:npm install workbox-webpack-plugin —save-dev

webpakc.config.js里面添加

const WorkboxPlugin = require(‘workbox-webpack-plugin‘);

以及在插件plugin里面添加  new WorkboxPlugin(

clientsClaim  :true,

skipWaiting  :true

webpack的迁移*

管理依赖   es6modules   commonjs   amd

公共路径:

publicpath

原文地址:https://www.cnblogs.com/wyliunan/p/8509366.html

时间: 2024-12-31 19:01:46

webpack理论完整版的相关文章

Hadoop实战视频教程完整版 完整的Hadoop大数据视频教程

分享一套迪伦老师的完整的Hadoop实战视频教程,教程从学习Hadoop需要的数据库.Java和Linux基础讲起,非常适合零基础的学员,课程最后结合了实战项目演练,理论结合实战,深入浅出,绝对是当前最为完整.实战的Hadoop教程. <Hadoop大数据零基础高端实战培训系列配文本挖掘项目(七大亮点.十大目标)> 课程讲师:迪伦 课程分类:大数据 适合人群:初级 课时数量:230课时 用到技术:部署Hadoop集群 涉及项目:京东商城.百度.阿里巴巴 咨询QQ:1337192913(小公子)

Android照片墙完整版,完美结合LruCache和DiskLruCache

转载地址:http://blog.csdn.net/guolin_blog/article/details/34093441#comments 在上一篇文章当中,我们学习了DiskLruCache的概念和基本用法,但仅仅是掌握理论知识显然是不够的,那么本篇文章我们就来继续进阶一下,看一看在实战当中应该怎样合理使用DiskLruCache.还不熟悉DiskLruCache用法的朋友可以先去参考我的上一篇文章 Android DiskLruCache完全解析,硬盘缓存的最佳方案 . 其实,在真正的项

积累项目经验-完整版系统集成项目实现全过程

无论线下还是线上课程,很少直接涉及到实际项目的商务具体操作, 特别是技术和项目的紧密结合,技术如何和商务技巧的结合,这种系统的学习是所有其他同类课程中没有的.我们的"完整版系统集成项目实现全过程"正是围绕技术和项目结合.技术和商务结合为目标,进行的系统的实操视频教学. 这门课程的价值在于,虽然技术从过去到今天以至未来,都是不断更新和发展,但是掌握商务技巧和经验积累方式都是绝对重要的不变法则,企业项目实践告诉我们,商务能力和经验有时比技术更加重要,往往决定项目的订单是商务技巧,但是技术是

Android照片墙完整版,的完美结合LruCache和DiskLruCache

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/34093441 在上一篇文章其中,我们学习了DiskLruCache的概念和基本使用方法.但仅仅是掌握理论知识显然是不够的,那么本篇文章我们就来继续进阶一下.看一看在实战其中应该如何合理使用DiskLruCache. 还不熟悉DiskLruCache使用方法的朋友能够先去參考我的上一篇文章 Android DiskLruCache全然解析,硬盘缓存的最佳方案 . 事实上,在真正的项

监控宝服务性能监控配置(完整版)

继上篇监控宝服务器监控后,此篇博文详细记录下项目中对常用服务监控的配置不熟 服务器监控可参考:http://blog.51cto.com/kaliarch/2044977 监控宝服务性能监控配置(完整版) 一.目的 2 二.理论基础 2 2.1 相关理论 2 2.2 监控项目 2 三.服务性能监控部署 2 3.1 Nginx 服务性能监控 2 3.2 Apache 服务性能监控 6 3.3 Mysql 服务性能监控 9 3.4 IIS 服务性能监控 14 3.5 Tomcat 服务性能监控 16

AI工程师职业规划和学习路线完整版

AI工程师职业规划和学习路线完整版 如何成为一名机器学习算法工程师 成为一名合格的开发工程师不是一件简单的事情,需要掌握从开发到调试到优化等一系列能 力,这些能力中的每一项掌握起来都需要足够的努力和经验.而要成为一名合格的机器学习算法工程师(以下简称算法工程师)更是难上加难,因为在掌握工程师的通用技能以外,还需要掌握一张不算小的机器学习算法知识网络.下面我们就将成为一名合格的算法工程师所需的技能进行拆分,一起来看一下究竟需要掌握哪些技能才能算是一名合格的算法工程师. 基础开发能力 所谓算法工程师

Java并发编程核心知识体系精讲 完整版

第1章 开宗明义[不看错过一个亿]本章一连串设问:为什么学并发编程?学并发编程痛点?谁适合学习本课?本课程包含内容和亮点?首先4大个理由告诉你为什么要学,其实源于JD岗位要求就不得不服了.其次5个痛点+12个亮点,是否说服你要死磕Java并发编程呢?... 第2章 跨越第一座山“线程八大核心”[适用于纵观全貌]八大核心-序章.从本章开始将带你攻克并发编程领域的“第一座大山”:多线程八大核心. 第3章 核心1:实现多线程的正确姿势[解读官方文档,够权威]相信很多小伙伴经常在各大技术博客或者论坛甚至

office2016 软件全集 官方下载免费完整版(含破解文件)不含垃圾软件 win10完美激活

office2016官方下载免费完整版是新一代办公软件,office2016官方下载免费完整版已经分享到下面,office2016官方下载免费完整版包括了Word.Excel.PowerPoint.OneNote.Outlook.Skype.Project.Visio以及Publisher等组件和服务.下面分享:office2016软件的下载.安装及激活. 本文来自互联网,按原教程安装结果中招了,因含有垃圾软件,所以决定改写,以免你懂的... 注册文件下载中含有垃圾软件,请按下面的步骤操作会跳过

rip路由协议 细节分析及实例配置【完整版】

rip路由协议 细节分析及实例配置[完整版] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从中发现自己不足的问题,也希望能够找到一些比较冷僻的问题,这样子才会有意思多了.   先上图,这个就是我准备做实验的基本用图了.现在已经按照图上标注的IP将所有基本配置设置好了. 在这个实验中,大多数都是基于ripv1,只有在需要比较的时候才会把版本改成ripv2,然后判断完之后再切换为ripv1: 第一步