webpack打包demo,git地址:https://github.com/OnionMister/webpack-demo.git
打包图片资源分为两种,一种是css、js等中的图片打包,另一种是img标签的图片打包
这种打包使用的是url-loader,url-loader依赖于file-loader,安装命令如下:
cnpm install url-loader file-loader -D
这种打包使用的是html-loader ,安装命令如下:
cnpm install html-loader -D
<div class="bg1">less文件中的背景图</div>
<div class="bg2">less文件中的背景图</div>
<div class="bg3">less文件中的背景图</div>
<img src="./imgs/ym.jpg" title='我是img标签' alt="英明">
<div class="bg4">鼠标图小于10kB,是base64编码,且是通过js添加的背景图</div>
.bg1 {
width: 200px;
height: 100px;
background-size: 100% 100%;
background-image: url(./imgs/hp.jpg);
}
.bg2 {
width: 300px;
height: 150px;
background-size: 100% 100%;
background-image: url(./imgs/qz.png);
}
.bg3 {
width: 400px;
height: 200px;
background-size: 100% 100%;
background-image: url(./imgs/rz.jpg);
}
.bg4 {
width: 300px;
height: 300px;
background-size: 100% 100%;
}
img {
width: 500px;
height: auto;
}
需要主要js中的图片一定要导入,如使用require(路径)
// 导入样式
import './index.less';
const bgImg = require('./imgs/small.jpg'); // 这里一定要导入图片,否则打包不了
function test() {
console.log("webpack打包图片资源");
}
test();
var bg4 = document.getElementsByClassName("bg4")[0];
bg4.style.backgroundImage = `url(${
bgImg})`;
/**
* 使用url-loader对样式中的html进行处理,url-loader依赖于file-loader
* 下载:url-loader 和 file-loader
* 使用html-loader对html中的img标签进行处理
* 下载:html-loader
*/
const {
resolve
} = require('path'); // 使用resolve()处理绝路径
// html-webpack-plugin版本4 和 webpack5有兼容性问题,报错查看:https://blog.csdn.net/Kindergarten_Sir/article/details/110083041
const HtmlWebpackPlugin = require('html-webpack-plugin'); // 打包html文件
module.exports = {
// 入口文件
entry: "/src/index.js",
output: {
// 输出文件名
filename: "bundle.js",
// 输出路径,__dirname是当前文件的绝对路径,输出到绝对路径下的dist文件夹下
path: resolve(__dirname, 'dist'),
// 给打包后资源引入的路径前缀,静态资源最终访问路径 = output.publicPath + 资源loader或插件等配置路径
publicPath: "./"
},
module: {
rules: [
// loader配置
{
// 匹配以样式结尾的文件
test: /\.less$/,
// use中的多个loader是自底向上或自右向左运行的
use: [
// 在index.html文件的head中创建style标签,并将js中的样式字符串插入
'style-loader',
// 将css文件变成common.js的字符串加入到输出的js中
'css-loader',
// less-loader将less译成css
// 需要安装less和less-loader
'less-loader'
]
},
{
// 对样式中引入的图片文件进行转译,不处理img标签
test: /\.(jpg|png|gif)$/,
// 下载:url-loader file-loader
loader: 'url-loader',
options: {
// 图片小于10kB,会将图片传换成base64编码处理,
// 目的是为了将小图转为编码减少请求数量减轻服务器压力,
// 会导致图片体积增大,即base64编码比原图体积大(建议对小于12kB的图做编码处理,大图不处理)
limit: 10 * 1024,
// 关闭es6模块化处理,避免与html-loader的common.js规范冲突,发生冲突会导致路径变成“[object Module]”
// 新版本已经没有这个问题了 可以不关闭。
esModule: false,
// 默认图片命名为chunk的hash值,太长了
// [hash:10]为hash值前十位,[ext]表示文件原有扩展名
name:'[hash:10].[ext]'
}
},
{
// 对img标签路径进行处理
test: /\.html$/,
// html-loader使用common.js规范对img标签路径进行处理
loader: 'html-loader'
}
]
},
// 插件配置
plugins: [
// HtmlwebpackPlugin默认功能为创建空的html(body为空)并引入打包输出的js文件
// template配置是将指定的html文件的body内容加入到创建的html文件中
// html-webpack-plugin版本4 和 webpack5有兼容性问题,报错查看:https://blog.csdn.net/Kindergarten_Sir/article/details/110083041
new HtmlWebpackPlugin({
template: './src/index.html'
})
],
mode: "development", // 开发环境
// mode: "production", // 生产环境
}
// 安装
cnpm insatll webpack webpack-cli -D
// 打包命令
webpack
可运行打包后的html,查看效果。
文章浏览阅读8.5k次,点赞2次,收藏17次。1、任务分类 游戏中任务可以分为主线任务、支线任务、日常任务、周任务、节日活动任务,其中周任务和节日任务可以根据设定的日期进行开启关闭,属于重复性任务。2、游戏条件 各类任务开启条件:1、玩家等级 2、玩家攻击力3、前置任务等等 完成条件:玩家进行任务进度是否达成 任务关闭:1、玩家领取奖励后关闭任务。2、时间过期3..._游戏任务种类
文章浏览阅读6.4k次,点赞8次,收藏35次。1. codeforces codeforces(这个网站每天会有比赛,一起打CF吧!)http://codeforces.com/problemset2. topcoder:http://www.topcoder.com/challenges/3. kattis 这个网站有历年的ICPC真题 https://open.kattis.com/4. 洛谷:..._清华大学 acm网站
文章浏览阅读599次。可行1:当E:\\a.txt 已经存在,且程序字符=Unicode的时候,下面代码可以正常#include <iostream>#include <windows.h>int main(){ HANDLE hFILE = (HANDLE)CreateFile(L"E:\\a.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, NULL, NULL); if (hFILE == INVALID__::createfilea中文打不开
文章浏览阅读6.6k次,点赞2次,收藏13次。数据库安装文章目录数据库安装@[toc]实验环境方式1:使用MySQL仓库来安装部署MySQL一、添加MySQL仓库二、禁用默认的MySQL模块三、安装装MySQL四、启动MySQL服务器五、服务确认方式2:离线安装MySQL一、使用以下执行清理之前实验MySQL仓库安装的数据库:二、网上下载mysql的安装包三、将下载好的文件传入Redhat中的某个路径中四、解压安装包五、使用以下指令安装方式3:使用Docker部署MySQL一、准备Docker环境二、下载MySQL服务器Docker映像三、启动M._数据库部署
文章浏览阅读3k次。宽字节注入产生原因:1、mysql 在使用 GBK 编码的时候,会认为两个字符为一个汉字,例如%aa%5c 就是一个汉字(前一个 ascii 码大于 128 才能到汉字的范围)2、mysqli_real_escape_string() 函数转义在 SQL 语句中使用的字符串中的特殊字符。mysqli_real_escape_string(*connection,escapestring*)connection 必需。规定要使用的 MySQL 连接 escapestr..._sqli labs less32 宽字节注入
文章浏览阅读3.1k次。带你快速掌握html5游戏开发基本功,助你快速进阶游戏开发_html5游戏开发 slg游戏
文章浏览阅读2.6w次。跨服务调用api,api本身运行没有错误,也没有其他错误,报menuService 相关关联错误;解决:微服务运行需要关联多个其他微服务,所以要保证相关联的服务都启动了。..._"{\"code\":500,\"data\":null,\"success\":false,\"message\":\"org.springframework.web.s"
文章浏览阅读5.7k次。信号和槽signals:testSignalOne();testSignalOne(int params);testSignal(int params);piblic slots:testSlotOne();testSlotOne(int params);testSlot(int params);_qt5和qt4信号槽区别
文章浏览阅读57次。测量一些决策部门的生产效率的方法。简单说,现在有三个人,你可以叫他们DMU,a用一个甲生产了一个乙,b用两个甲生产了一个乙,c用三个甲生产了一个乙,显而易见a的效率最高,我们就把他定义为技术前沿面,他的效率为1。那么b就是1/2,c就是1/3。这样我们就可以计算出每个人的效率水平了。
文章浏览阅读4.3k次。①后台执行,但是打印log在nohup.log在你当前目录下,随着执行这个文件越来越大,直到执行完nohup 你要执行的命令 &例如:nohup bash -x test.sh &②后台执行,不打印lognohup 你要执行的命令 >/dev/null 2>log &例如:nohup bash -x test.sh >/dev/..._nohub有些打印不出来
文章浏览阅读3.6w次,点赞5次,收藏20次。由于有许多的RadioButton是动态的,不是固定的一些,所以需要在代码中,动态的添加到RadioGroup中,下面是我的实现方法。1、添加RadioButton到RadioGroup中RadioGroup group;for(int i=0; i<10; i++){ RadioButton tempButton = new RadioButton(this);_radiogroup 动态
文章浏览阅读246次。"D:\IDEAINSTALL\IntelliJ IDEA 2018.2.1\bin\idea64.exe.vmoptions" -Xms128m-Xmx750m-XX:ReservedCodeCacheSize=240m-XX:+UseConcMarkSweepGC-XX:SoftRefLRUPolicyMSPerMB=50-ea-Dsun.io.useCanonCache..._intellij idea 2018 xms xmx