webpack导入资源模块
const path = require ( 'path' )
module. exports = {
mode: 'none' ,
entry: "./src/main.js" ,
output: {
filename: "bundle.js" ,
path: path. join ( __dirname, 'dist' )
} ,
module: {
rules: [
{
test: /.css$/ ,
use: [
'style-loader' ,
'css-loader' ,
]
}
]
}
}
import createHeading from './heading.js'
import './main.css'
const heading = createHeading ( )
document. body. append ( heading)
import './heading.css'
export default ( ) => {
const element = document. createElement ( 'h2' )
element. textContent = 'Hello world'
element. classList. add ( 'heading' )
element. addEventListener ( 'click' , ( ) => {
alert ( 'hello world' )
} )
return element
}
webpack文件资源加载器
yarn add file- loader -- dev
import createHeading from './heading.js'
import icon from './icon.jpg'
import './main.css'
const heading = createHeading ( )
const img = document. createElement ( 'img' )
img. src = icon
document. body. append ( img)
document. body. append ( heading)
const path = require ( 'path' )
module. exports = {
mode: 'none' ,
entry: "./src/main.js" ,
output: {
filename: "bundle.js" ,
path: path. join ( __dirname, 'dist' ) ,
publicPath: 'dist/'
} ,
module: {
rules: [
{
test: /.css$/ ,
use: [
'style-loader' ,
'css-loader' ,
]
} ,
{
test: /.jpg$/ ,
use: [
'file-loader' ,
]
} ,
]
}
}
webpack url加载器 (data urls和url-loader)
data urls 是一种特殊的url,它可以直接表示一个文件,传统的url一般要求有服务器上有一个对应的文件,通过请求地址得到对应的文件,data urls是一种当前urls可以表示文件内容的方式,使用时不会发生任何http请求,适合体积比较小的资源,可以减少http发送次数,大文件单独提取存放,提高加载速度
const path = require ( 'path' )
module. exports = {
mode: 'none' ,
entry: "./src/main.js" ,
output: {
filename: "bundle.js" ,
path: path. join ( __dirname, 'dist' ) ,
publicPath: 'dist/'
} ,
module: {
rules: [
{
test: /.css$/ ,
use: [
'style-loader' ,
'css-loader' ,
]
} ,
{
test: /.jpg$/ ,
use: {
loader: 'url-loader' ,
option: {
limit: 10 * 1024
}
}
} ,
]
}
}
webpack 常用加载器分类
css-loader 转换为以js工作的css模块
文件操作类 把加载的资源模块拷贝到输出目录,将文件的访问路径向外导出