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

webpack2学习(二)

目录

  • 在main.js中操作dom 修改页面内容
  • 完善webpack配置文件
    • webpack最重要的功能 - 加载器(Loaders)
    • webpack的插件功能
  • 总结

==webpack 最难理解的点是 ‘编译’这个概念==

在main.js中操作dom 修改页面内容

eg

document.getElementById('app').innerHTML = 'hello xxx'

热更新:在工程启动时, 保存main.js, 会发现页面自动更新了,这是webpack-web-server的热更新功能(通过建立一个Websocket连接来实现响应代码的修改)

完善webpack配置文件

webpack最重要的功能 - 加载器(Loaders)

webpack中每个文件都是一个模块,不同的模块,需要不同的加载器来加载, 所以就需要安装不同的加载器对各种后缀名的文件进行处理。
eg: css样式
安装 style-loader css-loader

yarn add css-loader --save-dev
yarn add style-loader --save-dev

安装后, 在webpack.config.js中配置loader

在module对象的rules属性中去指定一系列的loaders,
每个loader必须包含test和use两个选项。

// 解释: 当webpack编译过程中遇到require() 或import语句导入一个后缀为.css的文件时,现将它通过css-loader转换,再通过style-loader转换,然后继续打包
// (use选项的值可以是数组也可是字符串,如果是数组编译顺序为从下至上)
module: {
        rules: [
            {
                test: /\.css$/,
                use: [
                    'style-loader',
                    'css-loader'
                ]
            }
        ]
    }

新建文件style.css,随便写几个样式
将style.css文件引入到main.js中

// 新建文件 打开文件 (当然你也可以手动打开)
touch style.css
open style.css

// style.css
#app {
    font-size: 30px;
    color: lightblue;
}

//main.js
import './style.css'

重新执行yarn run dev

页面会加载你写的样式

webpack的插件功能

插件功能强大 并且可以定制

这里以 extract-text-webpack-plugin的插件为例

  • 作用: 把散落在各地的css提取出来,并生成一个main.css文件,最终在index.html里通过link的形式加载它

安装

 yarn add extract-text-webpack-plugin --dev

改写配置

module: {
        rules: [
            {
                test: /\.css$/,
                use: ExtractTextPlugin.extract({
                    use: 'css-loader',
                    fallback: 'style-loader'
                })
            }
        ]
    },
    plugins: [
        //重命名提取后的css文件
        new ExtractTextPlugin("main.css")
    ]

在index.html中通过link添加main.css

    <link rel="stylesheet" type="text/css" href="/dist/main.css">

执行

yarn run dev

总结

webpack看似复杂,其实只不过是一个js配置文件
只要弄清楚4个概念:

  • 入口 entry
  • 出口 output
  • 加载器 Loaders
  • 插件 Plugins

转载于:https://www.cnblogs.com/lmx093418/p/9991571.html

相关文章:

  • 《步步惊“芯”——软核处理器内部设计分析》前两章读书笔记
  • etcd:从应用场景到实现原理的全方位解读
  • 一篇极好的Git 总结
  • java 实现 DES加密 解密算法
  • 卷积+池化+卷积+池化+全连接2
  • 【ABP框架系列学习】模块系统(4)
  • C++类的大小——sizeof(class)
  • 挑战练习12.3 更多对话框
  • php简单随机实现发红包程序
  • java变量学习
  • 增加索引
  • 关于梯度下降 - 线性回归的
  • ethereum Pet Shop
  • 事件机制
  • Hibernate 注解映射
  • 【技术性】Search知识
  • 4. 路由到控制器 - Laravel从零开始教程
  • exif信息对照
  • export和import的用法总结
  • Linux Process Manage
  • Octave 入门
  • php的插入排序,通过双层for循环
  • ReactNativeweexDeviceOne对比
  • redis学习笔记(三):列表、集合、有序集合
  • select2 取值 遍历 设置默认值
  • Selenium实战教程系列(二)---元素定位
  • Spark VS Hadoop:两大大数据分析系统深度解读
  • vue-loader 源码解析系列之 selector
  • 读懂package.json -- 依赖管理
  • 老板让我十分钟上手nx-admin
  • 我感觉这是史上最牛的防sql注入方法类
  • 我有几个粽子,和一个故事
  • 小程序滚动组件,左边导航栏与右边内容联动效果实现
  • 小程序开发中的那些坑
  • 教程:使用iPhone相机和openCV来完成3D重建(第一部分) ...
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #NOIP 2014#Day.2 T3 解方程
  • #宝哥教你#查看jquery绑定的事件函数
  • $.each()与$(selector).each()
  • ( )的作用是将计算机中的信息传送给用户,计算机应用基础 吉大15春学期《计算机应用基础》在线作业二及答案...
  • (06)金属布线——为半导体注入生命的连接
  • (LeetCode) T14. Longest Common Prefix
  • (zhuan) 一些RL的文献(及笔记)
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (转)甲方乙方——赵民谈找工作
  • (转)拼包函数及网络封包的异常处理(含代码)
  • *** 2003
  • .NET Core中的去虚
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 药厂业务系统 CPU爆高分析
  • .project文件