### 模块化
- 为了保证代码充分解耦,一个大的项目拆分成互相依赖的一个一个的小的模块,最后再通过简单的方式合并在一起
- 每一个js文件都可以看成一个单独的模块
在node这边(服务器端),提出CommonJs模块化规范
- 模块的引入 require (内置模块,第三方模块,自定义模块)
- 模块的导出 module.exports ||exports
浏览器:
- CMD sea.js AMD require.js
- UMD 处理兼容(require.js和CommonJS)
- es6module
  - 模块创建 (每个js文件就是一个模块)
  - 模块的引入(import)
    import {str} from "./a.js" 解构赋值的方式获取到导出的每个变量或方法
    import * as obj from "./a.js" obj.str
    import str2 from "./a.js"  对默认导出的变量起个别名
  - 模块的导出(export)
    export let str ="hello"
    export default str;
 
安装在项目里,尽量别安装在全局,在全局下容易引起版本的冲突

npm init -y 初始化本地配置文件 package.json文件
### webpack
npm install webpack --save-dev
 
 在package.json里配置启动webpack的命令->.bin ->webpack.cmd->webpack/bin/webpack.js->当前目录下(基于package.json文件)webpack.config.js
 
 在命令行 执行 npm run build 就能运行webpack
 
 webpack.config.js 是webpack配置文件 webpack所有的操作都根据这个配置文件进行的
 
 1.npm install webpack --save-dev
 2.package.json->"scripts": {
                     "build":"webpack"
                   },
 3.在项目下建一个webpack.config.js文件
 
 ### es6->es5
 - babel (babel-core 核心功能包 babel-loader babel解析器)
 npm install babel-core --save-dev
 npm install babel-loader --save-dev  --解析js
 
 在webpack配置下js的解析器是babel-loader
 -> {test:/\.js$/,use:"babel-loader",exclude:/node_modules/}
 
 presets(预设)指编译的规则,它是plugins集合
 npm install babel-preset-es2015 --save-dev ->es6转换es5
 npm install babel-preset-stage-0 --save-dev ->解析es7
 
 使用babel需要设置babel配置文件 .babelrc 在.babelrc设置presets和plugins
 
 ### 解析CSS
 css-loader(解析css) style-loader  (css代码放入style标签)
 
 ###解析less
 npm install less less-loader --save-dev
 
 ### 解析图片
 file-loader url-loader(依赖于file-loader)
 - 将图片转换成base64编码 最好限制下图片大小 -base64方式
 - 把图片重新命名然后再dist目录下输出 -请求图片地址的方式
 
 ### 字体图标

### html-webpack-plugin
 npm install html-webpack-plugin --save-dev
 根据html模板,自动把打包后的js插入html模板中,并且在dist目录下输出
 
 ### webpack-dev-server
 npm install webpack-dev-server --save-dev
 web服务器,代码更新时,自动打包,重新加载
 在package.json里设置操作这个服务的命令
 npm run dev

前端学习webpack的更多相关文章

  1. 前端小白webpack学习(二)

    前一篇写了自我总结的webpack定义:为JavaScript服务的静态模块打包器 和几大基本概念 entry.output.plugins.loaders等.指路前端小白webpack学习(一) 下 ...

  2. 前端小白webpack学习(一)

    俗话说得好,好记性不如烂笔头. 之前就在学习中看过webpack的教程,然而一段时间没用,火速的忘光了.写这篇博文,做个总结,也让自己以后有个地方回顾. 看webpack之前,我先去看了一下官方文档, ...

  3. web前端学习路线与书籍推荐

    什么是web前端? 在以前,通俗的讲是网页制作,在现在,哼哼,可以参考这篇文章 http://tieba.baidu.com/p/4817153404 那么如果高效优雅的学习web呢? 注:以下纯属个 ...

  4. web前端学习就这9个阶段,你属于哪个阶段?

    第一阶段:HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础:Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAsc ...

  5. webpack4 学习 --- webpack和webpack-dev-server

    以前了解过webpack2, 所以对webpack 不是很陌生,就直接入主题吧.新建一个文件夹,就叫它webpack-tut吧.然后在文件中新建一个src 文件夹,存放我们的源文件,再在src 文件夹 ...

  6. web前端学习路线(含20个真实web开发项目集合)

    目前web前端工程师日均岗位缺口已经超过50000,随着互联网+的深入发展,html5作为前端展示技术,市场人才需求量将呈直线上涨. Web前端工程师的岗位职责是利用HTML.CSS.Java.DOM ...

  7. Web前端学习攻略

    HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础: Js基础教程.js内置对象常用方法.常见DOM树操作大全.ECMAscript ...

  8. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  9. 前端学习 node 快速入门 系列 —— 初步认识 node

    其他章节请看: 前端学习 node 快速入门 系列 初步认识 node node 是什么 node(或者称node.js)是 javaScript(以下简称js) 运行时的一个环境.不是一门语言. 以 ...

随机推荐

  1. select poll epoll相关知识速记

    缘起 面试的时候经常被问的一个很蛋疼的问题,经常被问,但是知识很零散,难记忆,看完就忘 select 作用 可以监视文件描述符是否可以读写,要求监视的文件描述符是非阻塞的 诞生背景 产生与上个世纪80 ...

  2. (转)python with as的用法

    源地址https://www.cnblogs.com/DswCnblog/p/6126588.html With语句是什么? 有一些任务,可能事先需要设置,事后做清理工作.对于这种场景,Python的 ...

  3. 【[HEOI2012]采花】

    \(HH\)的项链加强版,数据范围和题意都加强了 题意大概:给出n个数,求区间出现次数>=2的数的个数. 一眼莫队,可是我还不会莫队啊 那就树状数组吧 回忆一下\(HH\)的项链,套路差不多,那 ...

  4. POJ 3020 Antenna Placement 【最小边覆盖】

    传送门:http://poj.org/problem?id=3020 Antenna Placement Time Limit: 1000MS   Memory Limit: 65536K Total ...

  5. 【luogu P2298 Mzc和男家丁的游戏】 题解

    题目链接:https://www.luogu.org/problemnew/show/P2298 对于迷宫问题,bfs是比较好的选择. 直接bfs模板 #include <iostream> ...

  6. iOS Block界面反向传值小demo

    1.在第二个视图控制器的.h文件中定义声明Block属性: // 定义block @property (nonatomic, copy) void (^NextViewControllerBlock) ...

  7. #leetcode刷题之路9- 回文数

    判断一个整数是否是回文数.回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数. 示例 1:输入: 121输出: true 示例 2:输入: -121输出: false解释: 从左向右读, 为 ...

  8. 分页离线条件查询 页面响应500 后端未报异常 list集合有数据

    如果 使用同一个Hibernate的DetachedCriteria离线条件查询对象同时查询“过滤后条数” 和 “过滤后的数据集合”,那么查询记录数时需要设置聚合函数条件并且 使用聚合函数  代码要在 ...

  9. 使用nginx对spring boot项目进行代理

    摘要:使用nginx对spring boot项目进行反向代理,并且使用轮询均衡负载策略 均衡负载与集群 集群和均衡都涉及到多个机器提供的服务的问题 不同点是,集群是互相通信.协同的的多个服务,服务之前 ...

  10. 浅谈Linux下mv和cp命令的区别

    1.功能上的区别 mv:用户可以使用该命令为文件或目录重命名或将文件由一个目录移入另一个目录中. cp: 该命令的功能是将给出的文件或目录拷贝到另一文件或目录中. 2.从inode角度来区分 mv:会 ...