webpack 4.X版本的简单使用(处理js/css/less/scss/url(图片)/字体文件)

版权声明:转发请标注原文地址 https://blog.csdn.net/hyt941026/article/details/82870466
  1. 创建一个工程目录,在该目录下创建dist和src两个目录,并在src中创建一个index.js文件(其他目录随意)
    在这里插入图片描述
  2. 在dos窗口进入该工程目录,安装webpack和webpack-cli(需要先安装npm,nodejs)
  • 方法一:全局安装
npm install -g webpack 
npm install -g webpack-cli
  • 方法二:在工程目录中安装
npm install --save-dev webpack
npm install --save-dev webpack-cli
  1. 初始化 npm init -y 初始化成功后会出现一个package.json文件

  2. 下载jQuery npm install jquery -S
    在这里插入图片描述

  3. 编写文件
    index.html:

<body>
    <ul>
        <li>第1个</li>
        <li>第2个</li>
        <li>第3个</li>
        <li>第4个</li>
        <li>第5个</li>
    </ul>
</body>

index.js
//导入jQuery

import $ from 'jquery'

$(function(){
    $('li:odd').css('backgroundColor', 'lightblue')
})
  1. 打包编译index.js文件 webpack --mode development
    在这里插入图片描述
    注:使用该默认方法打包js文件,需保证文件名为index.js且在src目录下,打包成功后默认生成dist目录下的main.js文件
  • 非默认:
  1. 在项目根目录下创建webpack.config.js文件并进行如下配置
const path = require("path")
module.exports = {
    entry: {
        app:"./index.js"
    },
    output: {
        publicPath:__dirname + "/dist",
        path:path.resolve(__dirname, "dist"),
        filename:"bundle.js"
    }
} 

或:

entry:path.join(__dirname, './src/main.js'),
output:{
path: path.join(__dirname, './dist'),
filename: 'bundle.js'
}
  1. 执行 webpack --mode development
    在这里插入图片描述

使用webpack-dev-server实现自动打包编译

  1. npm i webpack-dev-server -D (i -D 是 install --save-dev 的简写)
    注:想要webpack-dev-server能够正常运行,本地项目必须安装webpack

  2. 在package.json文件下的dev中添加 -webpack-dev-server
    在这里插入图片描述
    执行npm run dev打包编译成功但是并未退出打包状态,在该状态下若index.js文件被改变,则会自动打包编译生成新的bundle.js文件
    在这里插入图片描述
    注:使用Ctrl + C退出

**

Webpack处理CSS样式表

**

  1. 在项目中安装 style-loader 和 css-loader
npm i style-loader css-loader -D
  1. 在webpack.config.js文件的module.exports中新建一个module节点(请看上面的非默认打包的配置)
module: {//用于配置所有第三方模块加载器
    rules:[//第三方模块加载器的规则
        //处理.css文件的第三方loader规则,后面的loader先处理
        {test:/\.css$/, use: ['style-loader', 'css-loader']}
    ]
}

处理less文件

  1. 安装less-loader :npm i less-loader -D
    需要安装less依赖:npm i less -D
  2. 在webpack.config.js中配置
//处理.less文件的第三方loader规则
{test:/\.less$/, use: ['style-loader', 'css-loader', 'less-loader']}

处理scss文件

  1. 安装 sass-loader :npm i sass-loader -D
    需要安装 node-sass 依赖:npm i node-sass -D(可能用npm安装不了,需要使用cnpm)
  2. 在webpack.config.js中配置
//处理.scss文件的第三方loader规则
{test:/\.scss$/, use: ['style-loader', 'css-loader', 'sass-loader']}

处理URL(图片)

  1. 安装url-loader(需要依赖file-loader)
  npm i url-loader file-loader -D
  1. 在webpack.config.js中配置
//处理图片路径的loader
{test:/\.(jpg|jpeg|png|pneg|gif|bmp)$/, use: 'url-loader'}

处理bootstrap图标

  1. 下载boostrap(3.X版):npm i [email protected] -D
  2. 在index.js中引入
import 'bootstrap/dist/css/bootstrap.css'
  1. 在webpack.config.js中配置
//处理字体文件
{test:/\.(ttf|eot|svg|woff|woff2)$/, use: 'url-loader'}
  1. 在html中调用(官网:https://v3.bootcss.com/components/)
<span class="glyphicon glyphicon-star" aria-hidden="true"></span>

4.x版(https://useiconic.com/open):

  1. 下载:npm i [email protected] -D
    由于4.x版本icon文件分离出去所以还需要下载open-iconic:
    npm i https://github.com/iconic/open-iconic.git -D(下载可能有点慢,要花个几分钟,可用cnpm下载)
  2. 在index.js中引入
    在3.x的基础上引入
import 'open-iconic/font/css/open-iconic-bootstrap.css'
  1. 在webpack.config.js中配置
//处理字体文件,在3.x的基础上多了一个otf
{test:/\.(ttf|eot|svg|woff|woff2|otf)$/, use: 'url-loader'}
  1. 在html中引用
<span class="oi oi-account-login"></span>

注:可在上边的网站中找到使用方法,如图,由于导入的Bootstrap Font的CSS文件所以只有第四种方式是可用的,每一种方式引用的文件不一样,请配套使用
在这里插入图片描述

整个项目代码

https://gitee.com/hyt_ao/webpack-project

猜你喜欢

转载自blog.csdn.net/hyt941026/article/details/82870466