webpack学习第三步——loader之打包图片文件

2020-02-14  本文已影响0人  Love小六六

——loader:打包方案,对特定文件打包提供方案

在src中添加一个图片文件

import Header from './header'
import Sidebar from './sidebar'
import Content from './content'
import Avatar from './avatar.jpg'
    
new Header()
new Sidebar()
new Content()

file-loader

npm install file-loader -D
// webpack.config.js
const path = require('path')
module.exports = {
    mode: "development",
    entry: "./src/index.js", // 路径相对于webpack.config.js
    // 对jpg结尾的文件使用file-loader
    module: {
        rules: [{
            test: /\.jpg$/,
            use: 'file-loader'
        }]
    },
    output: {
        path: path.resolve(__dirname,'bundle'),// 绝对路径+bundle文件夹
        filename: 'bundle.js'
    }
}
import avatar from './avatar.jpg'
    
let img = new Image()
img.src = avatar
console.log(avatar)
let root =document.getElementById('root')
root.append(img)
const path = require('path')
module.exports = {
    mode: "development",
    entry: "./src/index.js",
    module: {
        rules: [{
            test: /\.jpg$/,
            use: {
                loader: "file-loader",
                options: {
                // 文件名称为初始文件名.初始文件后缀
                    name: '[name].[ext]'
                }
            }
        }]
    },
    output: {
        path: path.resolve(__dirname,'build'),
        filename: 'bundle.js'
    }
}
const path = require('path')
module.exports = {
    mode: "development",
    entry: "./src/index.js",
    module: {
        rules: [{
            test: /\.jpg$/,
            use: {
                loader: "file-loader",
                options: {
                // 加上本次打包的hash值
                    name: '[name]_[hash].[ext]'
                }
            }
        }]
    },
    output: {
        path: path.resolve(__dirname,'build'),
        filename: 'bundle.js'
    }
}
module: {
    rules: [{
        test: /\.(jpg|png|gif)$/,
        use: {
            loader: "file-loader",
            options: {
                name: '[name]_[hash].[ext]'
            }
        }
    }]
},
const path = require('path')
module.exports = {
    mode: "development",
    entry: "./src/index.js", // 路径相对于webpack.config.js
    module: {
        rules: [{
            test: /\.(jpg|png|gif)$/,
            use: {
                loader: "file-loader",
                options: {
                    name: '[name]_[hash].[ext]',
                    outputPath: 'images/'
                }
            }
        }]
    },
    output: {
        path: path.resolve(__dirname,'build'),
        filename: 'bundle.js'
    }
}

url-loader

npm install url-loader -D
const path = require('path')
module.exports = {
    mode: "development",
    entry: "./src/index.js", // 路径相对于webpack.config.js
    module: {
        rules: [{
            test: /\.(jpg|png|gif)$/,
            use: {
                loader: "url-loader",
                options: {
                    name: '[name]_[hash].[ext]',
                    outputPath: 'images/'
                }
            }
        }]
    },
    output: {
        path: path.resolve(__dirname,'build'),// 绝对路径+bundle文件夹
        filename: 'bundle.js'
    }
}
const path = require('path')
module.exports = {
    mode: "development",
    entry: "./src/index.js",
    module: {
        rules: [{
            test: /\.(jpg|png|gif)$/,
            use: {
                loader: "url-loader",
                options: {
                    name: '[name]_[hash].[ext]',
                    outputPath: 'images/',
                    // 小于2kb进行base64位编码
                    limit: 2048
                }
            }
        }]
    },
    output: {
        path: path.resolve(__dirname,'build'),// 绝对路径+bundle文件夹
        filename: 'bundle.js'
    }
}

file-loader还可以打包eot|ttf|svg等字体文件

上一篇 下一篇

猜你喜欢

热点阅读