核心提示:webpack打包图片时遇到的问题(代码实例)const path = require(path);const uglify = require(uglifyjs-webpack-plugin);//...
webpack打包图片时遇到的问题(代码实例)
const path = require('path');
const uglify = require('uglifyjs-webpack-plugin');//代码压缩插件
const htmlPlugin = require('html-webpack-plugin');//html 打包工具
const extractTextWebpackPlugin = require('extract-text-webpack-plugin');//css 分离工具
const webPath = {
publicPath: "https://192.168.1.105:8080/"//配置文件的路径
};
const webpack = require('webpack');
const config = {
mode: 'development',//production
entry: {//入口
search:'./src/search.js'
},
output: {//出口
path: path.resolve(__dirname,'dist'),//出口的目录
filename: '[name].js',//
publicPath: webPath.publicPath
},
module: {//css //图片 //图片压缩
rules: [//规则
{
test:/\.css$/,//正则匹配
use: extractTextWebpackPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
//loader:['style-loader','css-loader'],第一种写法
//use:['style-loader','css-loader'],//使用的组件 第二种写法
/*use:[{//第三种写法(常用)
loader:'style-loader'
},{
loader:'css-loader'
}]*/
//include:'',//那些文件不需要处理
//exclude:'',//那些文件需要处理
//query:"" 可选的额外配置项
},
{
test:/\.(gif|png|jpg|woff|svg|ttf|eot)$/,//图片的处理
use:[{
loader:'url-loader',
options: {
limit:500,//当图片小于这个值他会生成一个图片的url 如果是一个大于的他会生成一个base64的图片在js里展示
outputPath: 'img/',// 指定打包后的图片位置
name:'[name].[ext]?[hash]',//name:'[path][name].[ext]
//publicPath:output,
}
}, /*{
loader: 'file-loader',
options: {
limit:50,
name: '[name].[ext]?[hash]',
outputPath: 'img/',
}
}*/]
}
]
},
plugins: [//插件
// new uglify(),使用压缩组件(实验发现,生产环境不需要此插件也可以压缩)
new htmlPlugin({
minify:{
removeAttributeQuotes:true,//去掉属性值后的双引号
},
hash:true,//去除缓存
template:'./src/index.html'//模板文件
}),
//new webpack.HotModuleReplacementPlugin(),
new extractTextWebpackPlugin('./css/index.css')
],
devServer: {//服务配置
contentBase:path.resolve(__dirname,'dist'),//根路径
host:'192.168.1.105',//域名
compress: true,//开启服务器压缩
port:'8080',//端口号
}
};
module.exports = config;
Webpack 图片
Npm install file-loader url-loader –save-dev 安装图片的依赖包
9、
css 分离
依赖插件
npm install extract-text-webpack-plugin –save-dev // webpack4 不能用
请用 npm install extract-text-webpack-plugin@next --save-dev
注意 url-loader 和 url-loader 使用一个就好url-loader 依赖于file-loader是对file-loader又封装了一层。url-loader的配置都可以使用
url-loader
{
limit //设定大小限制大于他就用文件形式,小于就压缩成base64为
mimetype: 'image/png‘设置文件的MIME类型。如果未指定,则将使用文件扩展名来查找MIME类型。
fallback: 'responsive-loader' //表示超过limit设置的上线 就用 这个程序处理
}


