webpack 手摸手学习系列之初体验

一、webpack 的介绍
  1. webpack 是一种前端资源构建工具,一个静态模块打包器(module bundler),前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理。它将根据模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)。

  2. webpack 分为 EntryOutputLoaderPluginsMode

  3. Entry:入口(Entry)指示 webpack 以哪个文件为入口起点开始打包,分析构建内部依赖图。

  4. Output:输出(Output)指示 webpack 打包后的资源 bundles 输出到哪里去,以及如何命名。

  5. LoaderLoaderwebpack 能够去处理那些非 JavaScript 文件 (webpack 自身只理解 JavaScript)。

  6. Plugins:插件(Plugins)可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩, 一直到重新定义环境中的变量等。

  7. Mode:模式(Mode)指示 webpack 使用相应模式的配置,分为 developmentproduction

  • development
    会将 DefinePluginprocess.env.NODE_ENV 的值设置 为 development。启用 NamedChunksPluginNamedModulesPlugin,能让代码本地调运行的环境。
  • production
    会将 DefinePluginprocess.env.NODE_ENV 的值设置 为 production。启用 FlagDependencyUsagePlugin, FlagIncludedChunksPlugin, ModuleConcatenationPlugin, NoEmitOnErrorsPlugin, OccurrenceOrderPlugin, SideEffectsFlagPluginTerserPlugin,能让代码优化上线运行的环境。
二、webpack 的初体验
  1. 创建空文件夹,通过 npm init 命令初始化 package.json 文件,通过 npm install webpack webpack-cli -g 命令全局下载 webpackwebpack-cli,通过 npm install webpack webpack-cli -D 命令本地下载 webpackwebpack-cli

  2. 在项目中,创建 src 目录,创建 data.jsonindex.cssindex.js 文件,index.js 是入口起点文件,代码如下所示:

  • data.json
    {
        "name": "张三"
    }
    
  • index.css
      html, body {
          height: 100%;
          background-color: pink;
        }
    
  • index.js
    // import './index.css';
    
    import data from './data.json'
    console.log(data)
    
    
    function add(x, y) {
        return x + y;
    }
    
    console.log(add(1, 2));
    
  1. 在开发环境中,通过 webpack ./src/index.js -o ./build/built.js --mode=development 命令进行运行,webpack会以 ./src/index.js 为入口文件开始打包,打包后输出到 ./build/built.js,整体打包环境也是开发环境。

  2. 在生产环境中, 通过 webpack ./src/index.js -o ./build/built.js --mode=production 命令进行运行,webpack 会以 ./src/index.js 为入口文件开始打包,打包后输出到 ./build/built.js,整体打包环境也是生产环境。

  3. 总结:

  • webpack 能处理 js/json 资源,不能处理 css/img 等其他资源
  • 生产环境和开发环境将 ES6 模块化编译成浏览器能识别的模块化
  • 生产环境比开发环境多一个压缩 js代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值