webpack

  1. webpack是什么,有哪些同类工具

    1. webpack项目打包工具,项目构建工具,有什么作用
    • 构建单页应用(disk) npm i http-server -g
    • 代码压缩
    • ...... (2) 同类工具
    • 百度fis3
    • grunt
    • gulp
    1. webpack最大的特点

      1. 一切皆模块
  2. webpack安装

    • 安装node(node提供了npm)

    • 设置淘宝镜像: nodejs的模块(插件)存放在网站,https://www.npmjs.com,淘宝镜像会同步该网站的模块 设置方法: npm config set registry http://registry.npm.taobao.org/

    • 文档地址: https://www.webpackjs.com

    • npm i webpack -g (-g全局安装, --save-dev安装到本目录)

    • npm i webpack-cli -g

      ps: 有时打包的时候提示xxx not fund 解决方案:
      • 方法一: 安装缺的模块 npm i xxx --save-dev
      • 方法二: 把webpack和webpack-cli卸载后重装,有时它们出问题了,丢失了某些东西
      • 卸载方法 npm uninstall webpack -g npm uninstall webpack-cli -g
  3. nodejs模块系统

    • 导出 // m1.js const cat = { age: 2, name: '白猫' } module.exports = cat;
    • 导入 index.js const aa = require('./cat.js'); consoe.log(aa.name);
    • 打开命令提示父,进入index.js所在目录,运行node index.js 看是否打印出"白猫"

webpack的核心概念

webpack的核心概念有四个: 入口和出口, 模式, loader, 插件

  1. 入口和出口(输出) demo1

    • 新建一个文件夹

    • 初始化package.json npm init -y

    • 新建webpack.config.js文件(固定的),配置入口和出口

      • 入口: 项目从哪里开始打包,打包的过程中,把相关的文件全部打成一个包, ps:入口文件通常叫main.js
      • 出口: 打包完成之后,文件名叫什么,放到哪里
    • 在项目的目录运行打包命令 webpack

  2. 模式(环境) mode配置(详细请看webpack文档) demo1

    1. mode: 'development' 开发环境
    2. mode: 'production' 生产环境
  3. loader 加载器(解释器)

    • 在webpak世界里,一切皆模块

    • webpack默认只认识js模块,其它的模块都需要相应的loader来解析(解释)

    • 配置css-loader(步骤)

      1. 新建demo2
      2. 初始化package.json
      3. 配置入口和出口
      4. 配置css-loader
      • 在npmjs.com找到css-loader,安装上面的说明进行配置
      • 配置好之后,执行打包命令
      • 新建一个html文件把打包出来的js文件放进去html运行检查效果
      • 注: css-loader依赖style-loader,所以要安装style-loader npm i style-loader --save-dev
    • 配置less-loader

      • 配置方法类似css-loader
    • 错误信息 You may need an appropriate loader to handle this file type 你需要配置一个合适的loader

  4. plugins 插件 demo3

    • html插件 html-webpack-plugin

      • 安装 npm i html-webpack-plugin --save-dev
      • 导入html-webpack-plugin模块
      • 配置(webpack文档)
      • 踩坑: Cannot find module 'webpack/lib/node/NodeTemplatePlugin' 解决方案 npm link webpack --save-dev
    • webpack.DefinePlugin 配置全局变量

  5. alias别名配置(为什么@能代替src)

  6. dev-server demo4

    • 安装 npm i webpack-dev-server -g

    • 配置htmlWebpackPlugin

    • 配置devServer(看webpack文档)

    • 运行命令 webpack-dev-server

    • 配置 npm run dev启动命令 (或者npm run start是怎么来的)

      在package.json的scripts里配置的

      <pre spellcheck="false" class="md-fences md-end-block ty-contain-cm modeLoaded" lang="" style="box-sizing: border-box; font-family: var(--monospace); font-size: 0.9em; display: block; break-inside: avoid; text-align: left; overflow: visible; white-space: normal; background-image: inherit; background-position: inherit; background-size: inherit; background-repeat: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: rgb(248, 248, 248); position: relative !important; border: 1px solid rgb(231, 234, 237); border-radius: 3px; padding: 8px 4px 6px; margin-bottom: 15px; margin-top: 15px; width: inherit;">

      <textarea autocorrect="off" autocapitalize="off" spellcheck="false" tabindex="0" style="box-sizing: border-box; color: inherit; font: inherit; position: absolute; bottom: -1em; padding: 0px; width: 1000px; height: 1em; outline: none;"></textarea>

      <pre class=" CodeMirror-line " role="presentation" style="box-sizing: border-box; font-family: inherit; break-inside: avoid; padding: 0px 4px; border-radius: 0px; border-top-width: 0px; border-right: none; border-bottom-width: 0px; border-left-width: 0px; background: 0px 0px; font-size: inherit; margin: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: inherit; z-index: 2; position: relative; overflow: visible; word-break: normal; width: inherit;"> "scripts": {</pre>

      <pre class=" CodeMirror-line " role="presentation" style="box-sizing: border-box; font-family: inherit; break-inside: avoid; padding: 0px 4px; border-radius: 0px; border-top-width: 0px; border-right: none; border-bottom-width: 0px; border-left-width: 0px; background: 0px 0px; font-size: inherit; margin: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: inherit; z-index: 2; position: relative; overflow: visible; word-break: normal; width: inherit;">"dev": "webpack-dev-server",</pre>

      <pre class=" CodeMirror-line " role="presentation" style="box-sizing: border-box; font-family: inherit; break-inside: avoid; padding: 0px 4px; border-radius: 0px; border-top-width: 0px; border-right: none; border-bottom-width: 0px; border-left-width: 0px; background: 0px 0px; font-size: inherit; margin: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: inherit; z-index: 2; position: relative; overflow: visible; word-break: normal; width: inherit;"> "test": "echo "Error: no test specified" && exit 1"</pre>

      <pre class=" CodeMirror-line " role="presentation" style="box-sizing: border-box; font-family: inherit; break-inside: avoid; padding: 0px 4px; border-radius: 0px; border-top-width: 0px; border-right: none; border-bottom-width: 0px; border-left-width: 0px; background: 0px 0px; font-size: inherit; margin: 0px; white-space: pre-wrap; overflow-wrap: break-word; color: inherit; z-index: 2; position: relative; overflow: visible; word-break: normal; width: inherit;"> },</pre>

      </pre>

    技术演讲:

    1. 入口和出口的配置
    2. css-loader的配置
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 webpack介绍和使用 一、webpack介绍 1、由来 ...
    it筱竹阅读 11,028评论 0 21
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 6,447评论 2 71
  • 目录第1章 webpack简介 11.1 webpack是什么? 11.2 官网地址 21.3 为什么使用 web...
    lemonzoey阅读 1,731评论 0 1
  • 学习流程 参考文档:入门Webpack,看这篇就够了Webpack for React 一. 简单使用webpac...
    Jason_Zeng阅读 3,106评论 2 16
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,671评论 7 110