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

下面开始webpack的具体使用。

webpack使用

  1. 创建新项目,项目目录如下。

    • src目录下存放项目源码,index.html作为项目入口;
    • dist目录存放打包好的文件

    2.webpack安装

    ​ webpack安装分两种:

    • 全局安装

      npm i webpack webpack-cli -g

    • 项目中安装(推荐)

      npm i webpack webpack-cli -D

    进去项目根目录,终端输入npm i webpack webpack-cli -D

    安装完成显示:

    此时,项目中会多出一个package-lock.json和node_modules文件夹

    3.初始化项目

    ​ 终端输入npm init -y,完成后项目根目录多出一个package.json文件(忘截图了)

    4.webpack打包

    • 首先,在src目录下创建一个main.js文件,js中写入相应代码。为了书写方便,我又在项目中安装了jQuery,安装命令为npm i jquery -D

      //main.js
      
      //js中引入jQuery模块
      import $ from 'jquery' $(function () {
      $('li:odd').css('color', 'red');
      $('li:even').css('color', 'blue')
      })
    • 终端输入webpack .\src\main.js -o .\dist\bundle.js,将src下的main.js文件打包成bundle.js存在dist目录下(看学习视频时,老师使用的命令是webpack .\src\main.js .\dist\bundle.js,结果疯狂报错,后来百度之后发现是webpack版本过高,应该用webpack .\src\main.js -o .\dist\bundle.js

      打包完之后显示:

    • 此时,dist目录下多出一个bundle.js文件。在index.html中引入bundle.js,页面中已经显示变化。说明打包成功。

    5.webpack配置

    ​ 项目根目录下创建webpack.config.js文件,打包时若命令中没有指定项目的打包文件,webpack则会去该文件下应用用户配置的操作。(在node中,'__dirname'指向被执行文件的绝对路径)

    //webpack.config.js
    
    /* node.js 中的path模块,用来处理文件路径 */
    const path = require('path')
    /* 向外输出配置模块 */
    module.exports = {
    entry:path.join(__dirname,'./src/main.js'), //打包入口,将main.js打包
    output:{
    path:path.join(__dirname,'./dist'), //打包输出路径
    filename:'bundle.js' //打包输入文件名
    }
    }

    此时,删除之前dist目录下的bundle.js文件,终端中直接输入webpack,会重新生成一个bundle.js,打包成功

    6.webpack-dev-server使用

    webpack-dev-server是一个小型的Node.js Express服务器,它使用webpack-dev-middleware来服务于webpack的包,

    • 终端输入npm i webpack-dev-server -D安装webpack-dev-server,安装成功如下。

    • 点开package.json文件,在scripts标签下配置webpack-dev-server

    此时,运行`npm run dev`,项目在打包后会自动运行在localhost上(默认为8080端口,我的8080端口被占用了,因此变成了8081)
    
    ![](https://img2018.cnblogs.com/blog/1879373/201911/1879373-20191126090743503-346502267.png)
    
    进入http://localhost:8081/,页面显示如下
    
    ![](https://img2018.cnblogs.com/blog/1879373/201911/1879373-20191126090805378-398244847.png)
    
    点击进入src后,显示项目主页面,即entry中配置的页面
    • webpack参数配置

      1. 在package.json中配置

      "dev":"webpack-dev-server --open --port 5000 --hot --contentBase src"

       --open :打包完成后自动打开页面
      
       --port 5000:指定服务器端口号为5000
      
       --hot:模块热替换。配置这个参数可以让页面在加载时只替换更新过的部分,而不是页面重载
      
       --contentBase src:指定服务器的根目录为src目录,webpack-dev-server默认以当前目录为基本目录
      1. 或者进入webpack.config.js中,在输出模块中配置。此时package.json中应配置为"dev":"webpack-dev-server"

        /* node.js 中的path模块,用来处理文件路径 */
        const path = require('path')
        /* 向外输出配置模块 */
        module.exports = {
        entry:path.join(__dirname,'./src/main.js'), //打包入口,将main.js打包
        output:{
        path:path.join(__dirname,'./dist'), //打包输出路径
        filename:'bundle.js' //打包输入文件名
        },
        devServer:{ //webpack-dev-server配置
        open:true,
        port:5000,
        contentBase:'src',
        hot:true
        }
        }
      • 终端输入npm run dev,运行后直接进入项目主页面

前端小白webpack学习(二)的更多相关文章

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

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

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

    .less文件与.scss文件使用与.css文件相仿 less-loader使用需要借助less插件,终端输入npm i less less-loader -D安装; sass-loader使用需要借 ...

  3. 前端小白webpack学习(三)

    不写不知道,一写发现自己真是罗里吧嗦,尽量改进 之前写了webpack的主要概念和一些使用,今天再记一下webpack的plugins和loaders的使用 7.webpack plugins使用 例 ...

  4. 前端小白的学习之路html与css的较量【二】

    标签的划分 块级元素 独占一行 设置 宽 高可以起作用 排列方式: 上下排列 行内元素 可以共占一行 设置 宽 高 不起作用,大小由内容决定 排列方式:左右排列 行内块 可以共占一行 可以设置宽 高 ...

  5. 前端小白的学习之路html与css的较量【一】

    html和css的较量 web结构的组成 html标签规则 快速生成一个html html的基本结构 标签的关系 标签 标题标签 段落 图片 超链接 a 属性 a标签里面的值 字符实体 新增的标签 1 ...

  6. webpack前端构建工具学习总结(二)之loader的使用

    Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换. Loader 可以理解为是模块和资源的转换器,它本身是一个函数,接受源文件作为 ...

  7. webpack前端构建工具学习总结(一)之webpack安装、创建项目

    npm是随nodeJs安装包一起安装的包管理工具,能解决NodeJS代码部署上的很多问题: 常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服务器 ...

  8. 深入学习webpack(二)

    深入学习webpack(二) 在深入学习webpack(一)中,我通过一个例子介绍了webpack的基本使用方法,下面将更为系统的学习webpack的基本概念,对于一门技术的掌握我认为系统化还是很重要 ...

  9. webpack前端构建工具学习总结(四)之自动化生成项目中的html页面

    接续上文:webpack前端构建工具学习总结(三)之webpack.config.js配置文件 插件的介绍文档:https://www.npmjs.com/package/html-webpack-p ...

随机推荐

  1. django restful framework 一对多方向更新数据库

    目录 django restful framework 序列化 一 . 数据模型: models 二. 序列化: serializers 三, 视图: views 四, 路由: urls 五. 测试 ...

  2. Hibernate注解之@Enumerated:针对枚举enum(转)

    https://my.oschina.net/xinxingegeya/blog/359968 @Column(name = "store_type", nullable = fa ...

  3. 使用PaintCode便捷地实现动画效果

    // // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import " ...

  4. 【读一本书】《昇腾AI处理器架构与编程》--神经网络基础知识(2)

    1 卷积神经网络:输入层 之前提到多层感知机的参数太多,导致训练耗时长并且对图像处理也不具有优势,因此大神们 就提出了多层神经网络,其中最经典的是卷积神经网络(Convolution Neural N ...

  5. 关于软件定义IT基础设施的未来,深信服是这么思考的

    在今年的深信服创新大会上,软件定义IT基础设施成为非常重要的议题之一,深信服与2,000余位客户的CIO和合作伙伴一起围绕IT基础设施在数字化时代中的作用与价值进行了深入的探讨. 此外,深信服还联合I ...

  6. ASP.NET Core 选项模式源码学习Options Configure(一)

    前言 ASP.NET Core 后我们的配置变得更加轻量级了,在ASP.NET Core中,配置模型得到了显著的扩展和增强,应用程序配置可以存储在多环境变量配置中,appsettings.json用户 ...

  7. NRF52810和NRF52832的区别

    NRF52832和NRF52810都是蓝牙5.0的芯片 均是出至NORDIC. 主要区别是 1.NRF52810的Flash是192KB/ RAM是24KB    NRF52832的Flash是512 ...

  8. iOS libsqlite3.0.tbd和libsqlite3.tbd的区别

    ibsqlite3.0.tbd 只是一个快捷方式,其实也是指向libsqlite3.tbd的,如果libsqlite3.0.tbd指向的就是最新的libsqlite3.tbd,就不用更新了.

  9. [TimLinux] MySQL 中的CASE/WHEN语法

    1. 介绍章节 MySQL 5.7-en.a4.pdf文档的第12章:Functions and Operators中的12.4Control Flow Functions介绍了流控制操作符:CASE ...

  10. unix环境高级编程中的err_quit,err_sys用到的知识点

    unix环境高级编程中的err_quit,err_sys 环境 os CentOS release 6.7 (Final) gcc 4.4.7 c语言预备知识 标准输入输出文件 在linux系统中一切 ...