shimming是什么

shimming 是一个概念,是某一些功能的统称

  shimming(垫片),给我们的代码填充一些垫片来处理一些问题
  比如我们现在以来一个第三方的库,这个第三方的库本身依赖lodash,但是默认没有对lodash进行导入(认为全局存在lodash),那么我们就可以通过ProvidePlugin来实现shimming的效果

如:我们现在使用了一个叫aaa的库,aaa的库依赖于lodash,但是没有对lodash进行一个引入,他认为我们全局中应该有一个lodash的库,这个时候如果我们的代码跑起来肯定是有问题的,那么我们怎么配置呢?我们可以使用webpack的ProvidePlugin来实现shimming的效果

ProvidePlugin能够帮助我们在每个模块中,通过一个变量来获取一个package

如果webpack看到这个模块,他将在最终的bundle中引入这个模块

ProvidePlugin是webpack默认的一个插件,不需要专门的导入

main.js

request.js

webpack.common.js

假如我们在模块中直接使用第三方库中的属性的时候该如何设置

webpack.common.js

webpack并不推荐我们随意的使用shimming
webpack的理念就是使前端更加模块化,编写具有不存在隐含性依赖

MiniCssExtractPlugin

MiniCssExtractPlugin可以帮助我们将css抽取到一个独立的css文件总,该插件需要在webpack4+才可以使用

安装
npm i mini-css-extract-plugin -D

使用方式
webpack.dev.js

webpack.prod.js
//导入
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
//使用

 

20_webpack_shimming预支全局变量和css的抽离的更多相关文章

  1. Css技术入门笔记01

    在学习html的时候,html中的标签都具备了特定功能,或者含义,以及相应的样式效果.可是在有些时候我们可能仅仅希望使用 html标签把要显示的数据封装起来,而不需要任何的样式效果.这时就需要单独的标 ...

  2. Webpack4 学习笔记二 CSS模块转换

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 打包css模块 webpack是js模块打包器, 如果在入口文件引入css文件或其它的less.sass等文件,需要 ...

  3. thymeleaf引入公共css、js

    有时候很多css文件是公共的,我们必须要在每个html文件中引入它们,其实我们可以利用Thymeleaf的模板布局,把这些css文件抽出来,同时如果有某个html文件专属的css文件,还可在引入模板的 ...

  4. 从0构建webpack开发环境(二) 添加css,img的模块化支持

    在一个简单的webpack.config.js中,构建了一个基础的webpack.config.js文件,但是只支持js模块的打包. 本篇中添加对css和img的模块化支持 首先需要安装三个个load ...

  5. css基本内容笔记(学习整理)

    一.css简介 1.什么是css 层叠样式表. 层叠:层层叠加,若果有冲突应用优先级高,不冲突的部分共同作用 样式表:就是css属性样式的集合: 2.作用 a.修饰html,使得html样式更好看 b ...

  6. 《编写可维护的JavaScript》之编程实践

    最近读完<编写可维护的JavaScript>,让我受益匪浅,它指明了编码过程中,需要注意的方方面面,在团队协作中特别有用,可维护性是一个非常大的话题,这本书是一个不错的起点. 本书虽短,却 ...

  7. 编写可维护的JS 05

    5.UI层的松耦合 松耦合定义 每个组件尽量独立,修改一个不影响其他的组件 将Js从css中抽离 不要使用css表达式,因为浏览器会以高频率重复计算css表达式,严重影响性能,IE9不支持表达式 将C ...

  8. 关于javascript代码优化的8点建议

    前面的话 本文将详细介绍JS编程风格的几个要点 松耦合 当修改一个组件而不需要更改其他组件时,就做到了松耦合 1.将JS从CSS中抽离:不要使用CSS表达式 //不好的做法 .box{width: e ...

  9. 一字一句的搞懂vue-cli之vue webpack template配置

    webpack--神一样的存在.无论写了多少次,再次相见,仍是初见.有的时候开发vue项目,对尤大的vue-cli感激涕零.但是,但是,但是...不是自己的东西,真的很不想折腾.所以,我们就得深入内部 ...

  10. 如何写出优雅的JavaScript代码 ? && 注释

    如何写出优雅的JavaScript代码 ? 之前总结过一篇<如何写出优雅的css代码?>, 但是前一段时间发现自己的js代码写的真的很任性,没有任何的优雅可言,于是这里总结以下写js时应当 ...

随机推荐

  1. Vue13 样式动态绑定

    1 class样式的动态绑定 1.1 说明 通过命令v-bind:class设置一个对象,动态切换class.可以简写为:class. class=""可以和:class=&quo ...

  2. OpenMP Sections Construct 实现原理以及源码分析

    OpenMP Sections Construct 实现原理以及源码分析 前言 在本篇文章当中主要给大家介绍 OpenMP 当中主要给大家介绍 OpenMP 当中 sections construct ...

  3. WAF Bypass 介绍与实战

    前言 WAF是英文"Web Application Firewall"的缩写,中文意思是"Web应用防火墙",也称为"网站应用级入侵防御系统" ...

  4. Vue的认识、入门小历史

    VUE.3 小知识 渐进式框架,尤雨溪 Soc原则:关注度分离原则 网络通信:axios 页面跳转:vue-router 状态管理:vuex Vue-ui: Ant-Design 阿里巴巴基于Reac ...

  5. JZOJ 1082. 【GDOI2005】选址

    \(\text{Problem}\) 很久以前,在世界的某处有一个形状为凸多边形的小岛,岛上的居民们决定建一个祭坛,居民们任务祭坛的位置离岛的顶点处越远越好. 你的任务是求凸多边形内一点,使其与各顶点 ...

  6. Luogu P1505.[国家集训队]旅游

    题解 真真正正是个码农题,不过很套路,熟练就打得很快,不过要用点维护边的信息在 \(\text{LCA}\) 出要注意,不能处理此点的信息 \(Code\) #include<cstdio> ...

  7. BI工具术语表大全:从字母A-Z全面收录

    谈到商业智能行业,变革是不可避免的.为了跟上步伐,各种各样的BI 解决方案正在快速迭代更新,以满足企业的数字化需求,那么市场上BI 工具种类繁杂,到底如何选择适合功能全面.满足自己企业运转情况的.合适 ...

  8. 代码随想录算法训练营day08 | leetcode 344.反转字符串/541. 反转字符串II / 剑指Offer05.替换空格/151.翻转字符串里的单词/剑指Offer58-II.左旋转字符串

    基础知识 // String -> char[] char[] string=s.toCharArray(); // char[] -> String String.valueOf(str ...

  9. vue中h函数的使用

    1. h() 函数是一个用于创建 vnode,其实在vue中是createVNode 函数的简写 h()函数接受三个参数 参数1. 标签名或组件 参数2. 标签的属性或事件 参数3. 内容使用: // ...

  10. ASP和jq实现url传递参数乱码的escape编码和unescape解码

    <% Function vbsEscape(str)    dim i,s,c,a    s=""    For i=1 to Len(str)        c=Mid(s ...