前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Webpack5 快速入门

Webpack5 快速入门

作者头像
很酷的站长
发布2022-12-06 15:45:07
4850
发布2022-12-06 15:45:07
举报
1. webpack 介绍

webpack 官网: https://webpack.js.org

一、webpack  是什么?

webpack 是当前市场上最流行的打包工具

webpack 是代码编译工具,webpack 是一个用于现代 JavaScript 应用程序的静态模块打包工具,俗称: 打包工具

二、为什么需要打包工具?

源码下载站

开发时,我们会使用框架(Vue、React),ES6 模块化语法,Less/Sass 等 css 预处理器等语法进行开发。这样的代码浏览器是不能识别的,要想在浏览器运行必须经过编译,变成浏览器能识别的 JS、CSS 等语法,才能正常运行。

所以,我们需要打包工具帮我们完成这件事,除此之外,打包工具还能压缩代码、做兼容性处理,提升代码性能等

2. webpack 基本使用

构建 JS 模块化语法

代码语言:javascript
复制
├── public│   └── index.html└── src    ├── js    │   └── utils.js    └── main.js

src/js/utils.js

代码语言:javascript
复制
export const sum = (...args) => {    return args.reduce((sum, item) => sum += item, 0)};

src/main.js

代码语言:javascript
复制
import { sum } from './js/utils';console.log(sum(1, 2, 3, 4, 5));

public/index.html 中引入 src/main.js

代码语言:javascript
复制
<script src="../dist/main.js"></script>

初始化 npm 项目,安装 webpack 依赖,进行打包

代码语言:javascript
复制
npm init -ynpm i webpack webpack-cli -Dnpx webpack ./src/main.js --mode=development
3. webpack 5大核心概念

Webpack 的配置是围绕 5 大核心概念展开的,这五个概念非常重要

一、entry (入口)

指示 Webpack 从哪个文件开始打包

二、output (输出)

指示 Webpack 打包完的文件输出到哪里去,以及如何命名等

三、loader (加载器)

webpack 本身只能处理 js,json 等资源,其他资源(vue,css,scss)需要借助相应的 loader,Webpack 才能解析

四、plugins (插件)

扩展 Webpack 的功能

五、mode (模式)

开发模式 (development)、生产模式 (production)

4. webpack 配置文件

创建配置文件,配置 entry 入口

在项目根目录下新建文件: webpack.config.js,文件名称必须是这个,文件内容如下所示:

代码语言:javascript
复制
module.exports = {    entry: "./src/main.js"};

output 输出

以下配置示例中的 output 中 path 和 filename 是默认值

代码语言:javascript
复制
// nodejs 核心模块,专门用来处理路径问题const path = require("path")module.exports = {    // 入口    entry: "./src/main.js", // 相对路径    // 输出    output: {        // 输出路径        // __dirname 是 nodejs 的变量,代表当前文件所在目录        path: path.resolve(__dirname, 'dist'), // 绝对路径        // 文件名        filename: "main.js",    }};
5. webpack 运行脚本

修改 package.json 文件,添加一个运行脚本。懂得都懂,添加后就可以使用 npm run build 命令进行打包了

代码语言:javascript
复制
"scripts": {    "build": "webpack --mode=development"},
6. webpack 处理样式资源

一、处理 css 资源

创建 src/css/index.css 文件,文件内容如下:

代码语言:javascript
复制
.box1 {    width: 150px;    height: 150px;    color: red;    font-size: 18px;    background: lightgreen;}

src/main.js 中导入 css 文件

代码语言:javascript
复制
import "./css/index.css"

执行打包命令,你就会看到以下错误提示。这是因为 webpack 默认无法处理 CSS 资源,需要安装并配置 css 加载器

代码语言:javascript
复制
ERROR in ./src/css/index.css 1:0Module parse failed: Unexpected token (1:0)You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders

安装加载 css 资源所需的 loader【吐槽: webpack 官网这个坑货,给的安装命令中没有 style-loader】

代码语言:javascript
复制
npm install css-loader style-loader -D

修改 webpack.config.js 配置文件,检测 css 文件,使用 loader 进行处理

代码语言:javascript
复制
module.exports = {    // 加载器    module: {        rules: [            // loader 配置            {                // 只检测 .css 后缀的文件                test: /\.css$/i,                // loader 的执行顺序: 从右到左                // css-loader 将 css 资源编译成 commonjs 的模块到 js 中                // style-loader 将 js 中的 css 通过创建 style 标签添加到 html 文件中生效                use: ["style-loader", "css-loader"],            },        ],    },};
二、处理 less 资源

创建 src/less/index.less 文件,文件内容如下:

代码语言:javascript
复制
@color: purple;.less {    width: 150px;    height: 150px;    color: @color;    font-size: 20px;    background: lightcoral;}

src/main.js 中导入 less 文件

代码语言:javascript
复制
import "./less/index.less"

安装加载 less 资源所需的 loader

代码语言:javascript
复制
npm install less less-loader --save-dev

修改 webpack.config.js

代码语言:javascript
复制
module.exports = {    module: {        rules: [            {                test: /\.less$/i,                use: [                    // compiles Less to CSS                    "style-loader",                    "css-loader",                    "less-loader",                ],            },        ],    },};
三、处理 scss 资源

创建 src/scss/index.sass 文件,文件内容如下:

代码语言:javascript
复制
$color: bluebody    .sass        width: 150px        height: 150px        color: $color        font-size: 20px        background: yellowgreen

创建 src/scss/index.scss 文件,文件内容如下:

代码语言:javascript
复制
$color: black;body {    .scss {        width: 150px;        height: 150px;        color: $color;        font-size: 20px;        background<sp
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. webpack 介绍
  • 2. webpack 基本使用
  • 3. webpack 5大核心概念
  • 4. webpack 配置文件
  • 5. webpack 运行脚本
  • 6. webpack 处理样式资源
    • 一、处理 css 资源
      • 二、处理 less 资源
        • 三、处理 scss 资源
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档