当前位置: 首页 > news >正文

webpack学习笔记1

 

简介

代码拆分
Webpack 有两种组织模块依赖的方式,同步和异步。异步依赖作为分割点,形成一个新的块。在优化了依赖树后,每一个异步区块都作为一个文件被打包。
Loader
Webpack 本身只能处理原生的 JavaScript 模块,但是 loader 转换器可以将各种类型的资源转换成 JavaScript 模块。这样,任何资源都可以成为 Webpack 可以处理的模块。
智能解析
Webpack 有一个智能解析器,几乎可以处理任何第三方库,无论它们的模块形式是 CommonJS、 AMD 还是普通的 JS 文件。甚至在加载依赖的时候,允许使用动态表达式 require("./templates/" + name + ".jade")。
插件系统
Webpack 还有一个功能丰富的插件系统。大多数内容功能都是基于这个插件系统运行的,还可以开发和使用开源的 Webpack 插件,来满足各式各样的需求。
快速运行
Webpack 使用异步 I/O 和多级缓存提高运行效率,这使得 Webpack 能够以令人难以置信的速度快速增量编译。

 

优势:

 

  1. 按需加载模块,按需进行懒加载,在实际用到某些模块的时候再增量更新
  2. webpack 是以 commonJS 的形式来书写脚本,但对 AMD/CMD 的支持也很全面,方便旧项目进行代码迁移。
  3. 能被模块化的不仅仅是 JS 了,能处理各种类型的资源。
  4. 开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。
  5. 扩展性强,插件机制完善

常用webpack命令

 

 

1 $ webpack --config webpack.min.js //另一份配置文件
2 
3 $ webpack --display-error-details //显示异常信息
4 
5 $ webpack --watch   //监听变动并自动打包
6  
7 $ webpack -p    //压缩混淆脚本,这个非常非常重要!
8  
9 $ webpack -d    //生成map映射文件,告知哪些模块被最终打包到哪里了

 

建立项目

建立文件夹mkdir ....

初始化NPM [CMD] npm init -y

安装webpack [CMD] npm install --save-dev webpack

 

PS:安装完 我想通过webpack -h 查看webpack命令是否有效,结果显示不是外部或内部命令

然后开始找原因:因为我在安装nodejs的时候环境变量有两个没加,这边如果遇到问题,确认一下

 

进入该目录 使用sublime打开 [CMD] subl .

PS:如何使用subl命令 在环境变量中 PATH下面将sublime的路径放进去

 

就可以使用subl命令了

安装webpack 然后会提示我webpack-cli需要安装,[CMD]npm install webpack-cli -g

打包lodash [CMD] npm install --save lodash

项目的结构为

 

  webpack-demo
  |- package.json
  |- /dist
    |- index.html
  |- /src
    |- index.js

 

dist/index.html

<!doctype html>
<html>
  <head>
    <title>Getting Started</title>
  </head>
  <body>
    <script src="bundle.js"></script>
  </body>
</html>

src/index.js

import _ from 'lodash';

function component() {
    var element = document.createElement('div');

  // Lodash, now imported by this script
    element.innerHTML = _.join(['Hello', 'webpack'], ' ');

    return element;
}

document.body.appendChild(component());

 

最后打包走一波[CMD] webpack src/index.js --output dist/bundle.js

输出结果

 

转载于:https://www.cnblogs.com/CoffeeEddy/p/8745401.html

相关文章:

  • POJ2187 旋转卡壳 求最长直径
  • 《Java并发编程的艺术》--Java中的锁
  • win10 vs2015源码编译tesseract4.0
  • Go语言备忘录(2):反射的原理与使用详解
  • ubuntu16.04 更换源
  • Django中间件middleware
  • 结构图
  • libimobiledevice --Mingw32交叉编译
  • 在c:forEach作用域外使用标签所产生的值
  • 04-手机套餐:建造者模式
  • css总结1:position定位:absolute/relative/fixed
  • zzw原创_非root用户启动apache的问题解决(非root用户启动apache的1024以下端口)
  • SQL循环语句 详解
  • OpenCV问题集锦
  • 20154327 Exp1 PC平台逆向破解
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • export和import的用法总结
  • Java教程_软件开发基础
  • laravel5.5 视图共享数据
  • oldjun 检测网站的经验
  • PHP变量
  • 不发不行!Netty集成文字图片聊天室外加TCP/IP软硬件通信
  • 对象引论
  • 和 || 运算
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 技术发展面试
  • 老板让我十分钟上手nx-admin
  • 力扣(LeetCode)357
  • 码农张的Bug人生 - 见面之礼
  • 数组的操作
  • 线上 python http server profile 实践
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • nb
  • 1.Ext JS 建立web开发工程
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #HarmonyOS:基础语法
  • $.proxy和$.extend
  • (iPhone/iPad开发)在UIWebView中自定义菜单栏
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (第61天)多租户架构(CDB/PDB)
  • (二)JAVA使用POI操作excel
  • (附源码)php新闻发布平台 毕业设计 141646
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (生成器)yield与(迭代器)generator
  • (一)Java算法:二分查找
  • (转)大型网站的系统架构
  • (自用)learnOpenGL学习总结-高级OpenGL-抗锯齿
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .net core 微服务_.NET Core 3.0中用 Code-First 方式创建 gRPC 服务与客户端
  • .NET Micro Framework 4.2 beta 源码探析
  • .NET 的静态构造函数是否线程安全?答案是肯定的!