不写不知道,一写发现自己真是罗里吧嗦,尽量改进

之前写了webpack的主要概念和一些使用,今天再记一下webpack的plugins和loaders的使用

7.webpack plugins使用

  • 例:html-webpack-plugin ,这个插件的作用主要有两点

    ​ 1.自动在内存中根据指定页面生成一个内存的页面

    ​ 2.自动把打包好的 bundle.js 追加到页面中去

  • 安装插件,终端输入npm i html-webpack-plugin -D

  • 插件使用前需引入,在webpack.config.js文件中
const HtmlWebpackPlugin = require('html-webpack-plugin')
  • 配置插件
const path = require('path')
const htmlWebpackPlugin = require('html-webpack-plugin') module.exports = {
entry:path.join(__dirname,'./src/main.js'),
output:{
path:path.join(__dirname,'./dist'),
filename:"bundle.js"
},
plugins:[
new htmlWebpackPlugin({
template:path.join(__dirname,'./src/index.html'), //以src目录下的index.html为模板
filename:"index.html" //生成一个自动注入bundle.js的index.html文件
})
]
}
  • 运行webpack重新打包,dist目录下生成一个新的index.html,输入npm run dev运行当前页面
  • webpack自身也带有插件,如HotModuleReplacementPlugin(热替换模块)插件,也被成为HMR(永远不要在生产环境(production)下启用 HMR)
//使用webpack所携带的插件,只需引入webpack,再用webpack.***获取即可
const webpack = require('webpack') module.exports = {
entry:path.join(__dirname,'./src/main.js'),
output:{
path:path.join(__dirname,'./dist'),
filename:"bundle.js"
},
plugins:[
new webpack.HotModuleReplacementPlugin(),
new htmlWebpackPlugin({
template:path.join(__dirname,'./src/index.html'), //以src目录下的index.html为模板
filename:"index.html" //生成一个自动注入bundle.js的index.html文件
})
]
}

8.webpack loader使用

​ 前面提到webpack自身只能解析JavaScript和JSON文件,所有当我们需要打包其他类型文件如css文件、image文件等,需要使用loader配置。

  • 以.css文件为例,在src/css目录下创建一个index.css文件,随便写一点样式,如
ul>li{
background-color: cadetblue;
}
  • 安装解析css文件需要使用到的loader,打开终端输入npm i style-loader css-loader -D

  • 在main.js中引入index.css(main.js为项目入口)
import './css/index.css'
  • webpack.config.js中配置loader
const path = require('path')
const webpack = require('webpack')
const htmlWebpackPlugin = require('html-webpack-plugin') module.exports = {
entry:path.join(__dirname,'./src/main.js'),
output:{
path:path.join(__dirname,'./dist'),
filename:"bundle.js"
},
plugins:[
new webpack.HotModuleReplacementPlugin(),
new htmlWebpackPlugin({
template:path.join(__dirname,'./src/index.html'), //以src目录下的index.html为模板
filename:"index.html" //生成一个自动注入bundle.js的index.html文件
})
],
module:{
rules:[
//loader的顺序不能颠倒,webpack使用loader的顺序是从右到左(从下到上)
{test:/\.css$/,use:['style-loader','css-loader']}
]
}
}
  • 重新打包,运行,css解析成功

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

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

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

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

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

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

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

  4. webpack学习三——output

    output的两个参数filename,path 一.path输出路径,输出路径要绝对路径,否则报错.做法如下: path:__dirname + 'path' 二.filename 输出文件命,相对 ...

  5. webpack 学习三 模式

    开发环境(development)和生产环境(production)的构建目标差异很大.在开发环境中,我们需要具有强大的.具有实时重新加载(live reloading)或热模块替换(hot modu ...

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

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

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

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

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

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

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

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

随机推荐

  1. centos7安装samba

    samba是一个实现smb协议的开源软件,为局域网内的不同计算机之间提供文件和打印机共享服务. 1.安装yum groupinstall “file-server” -y 2.配置cp /etc/sa ...

  2. C标准输入输出库

    这样的代码有什么问题? char c; while((c = getchar()) != EOF) ... 首先,保存getchar的返回值的变量必须是int型.EOF是getchar返回的“超出范围 ...

  3. Chapter 07-Basic statistics(Part2 Frequency and contingency tables)

    这一部分使用在vcd包中的Arthritis数据集. > library(vcd) 载入需要的程辑包:MASS 载入需要的程辑包:grid 载入需要的程辑包:colorspace > he ...

  4. e = e || window.event的区别及用法

    本文链接:https://blog.csdn.net/qq_41348029/article/details/81288481 e = e || window.event 在做事件处理时,用于区分IE ...

  5. pyecharts实现星巴克门店分布可视化分析

    项目介绍 使用pyecharts对星巴克门店分布进行可视化分析: 全球门店分布/拥有星巴克门店最多的10个国家或地区: 拥有星巴克门店最多的10个城市: 门店所有权占比: 中国地区门店分布热点图. 数 ...

  6. ruby2.2 DevKit 安装后无法使用解决方案

    windows 系统下,Ruby 的某些 gem 包需要 DevKit 才能正常安装,2.4 以后的版本可以一键安装 DevKit,之前的版本只能手动安装. 2.4 以后的可以到官网下载:https: ...

  7. volatile在外设寄存器基地址定义时的作用

    volatile,作用就是告诉编译器不要因优化而省略此指令,必须每次都直接读写其值,这样就能确保每次读或者写寄存器都真正执行到位.——野火

  8. where 和having 的区别

    where : 约束声明,在查询结果返回之前对数据库中的查询条件进行约束    其后不能写聚合函数 having  过滤声明,在查询结果返回之后进行过滤,

  9. ajax异步请求的常见方式

    首先先介绍下ajax,ajax(ASynchronous JavaScript And XML)为异步的javascript和xml.所谓的异步和同步是指: 同步:客户端必须等待服务器的响应,在等待期 ...

  10. [TimLinux] JavaScript 代码控制滚动条移动到顶部/底部

    1. scrollIntoView函数 这个函数控制滚动条顶部内容.还是底部内容呈现在视图窗口中,接收一个参数:boolean值. true: 顶部出现在视图窗口中 false: 底部存在在视图窗口中 ...