前一篇写了自我总结的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. 重启testjenkins的步骤

    在linux下编译caffe的过程中,发生错误,导致linux系统蹦了,没办法,重启linux系统. 之前安装在docker下的jenkins也停掉了. 先启动jenkins的步骤如下: 1.先启动d ...

  2. .NET Core简单使用RabbitMq

    RabbitMQ简介 RabbitMQ是一个开源的,基于AMQP(Advanced Message Queuing Protocol)协议的完整的可复用的企业级消息队,RabbitMQ可以实现点对点, ...

  3. B. Magic Stick

    题目:魔法棒 题意:可以对一个正数进行变换,如果数字是偶数,那么它可以变成3 * a / 2 如果这个数大于1,那么它可以变成a - 1 有两个数x和y,询问是否可以通过这些操作从x变成y,输出YES ...

  4. 源码分析 RocketMQ DLedger(多副本) 之日志复制(传播)

    目录 1.DLedgerEntryPusher 1.1 核心类图 1.2 构造方法 1.3 startup 2.EntryDispatcher 详解 2.1 核心类图 2.2 Push 请求类型 2. ...

  5. Orleans在.net core的开发

    Goods 服务 启动 using System; using System.Collections.Generic; using System.Linq; using System.Net; usi ...

  6. Altium PCB二维码Logo设计(转 crazybingo)

    Altium PCB二维码Logo设计 每次设计PCB的时候,都会在空白部分放Logo上去,一来板卡显得更充实,二来更有成就感一些... 今天突然想着...这两年二维码越来越火,火到快爆发,不如在板卡 ...

  7. vue2.5 + element UI el-table 导出Excel

    安装依赖 npm install --save xlsx file-saver 新建excelHelper.js \src\utils\目录下新建excelHelper.js文件 import Vue ...

  8. Nginx(四)-- Nginx的扩展-OpenRestry

    1. OpenResty 安装及使用 OpenResty 是一个通过 Lua 扩展 Nginx 实现的可伸缩的 Web 平台,内部集成了大量精良的 Lua 库.第三方模块以及大多数的依赖项.用于方便地 ...

  9. Java_编写99乘法表

    public class Work100{ public static void main(String[] args){ // 积 int mu = 0; for(int i=1;i<10;i ...

  10. firefox浏览器写xpath

    最近在学xpath发现Firefox浏览器不支持xpath定位页面元素 百度为例: F12 页面前端代码  输入最简单的xpath发现并不能定位元素 解决方案:添加 Try Xpath 这个插件,因为 ...