前端与webpack|青训营笔记

100 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 13 天

今天和文杰老师学习了webpack的课程,收获巨大巨大巨大,这节课收获实在是太大了,文杰老师由浅入深,带我入门并体验了前端经典的打包工具----webpack

一,本节课重点内容

本节课围绕webpack展开,重点内容可以分为以下几点:

  • webpack的历史与优势
  • webpack打包的核心流程
  • webpack打包的实操
  • Loader组件
  • Plugin插件
  • 如何学好webpack

二,详细知识介绍

什么是前端项目?html,css,javascript,图片,音频,视频,图标......

随着项目越来越大,我们在做项目的时候,如果是小项目的话,我们可以手动的通过一些标签来维护。比如:

<script src=""></script>来引入js文件,或者是通过<link rel="stylesheet" type="text/css" href="style.css">来引入css文件。

但是这样会出现很多问题,比如我们项目,资源等等越来越大,越来越复杂,越来越臃肿的时候,我们手动维护的时候会随着依赖的js,css文件越来越多而导致越来越难以维护,越来越臃肿。而且当文件间有复杂的依赖关系的时候,比如js2依赖js1的时候,我们可能要先写js1,再写js2,不然就会出现未定义的问题。我们在引入js的依赖的时候,需要严格按照依赖的顺序来书写,就非常难以维护。还有,如果我们想要引入Less,Sass,Scss这些css预编译器的时候,会难以接入。最后,我们在开发的时候,可能也会出现JS,图片,资源模型不一致的问题。

由此引出webpack

webpack本质上是一种编译打包工具。可以打包多份文件。

webpack 在使用的时候可以创建一个前端工程,初始化之后,下载webpack,然后配置webpack.config.js配置文件!!我们通过entry来定义入口文件,通过output定义输出打包目录,通过mode决定开发环境和生产环境,因为我们webpack只认识js,所以我们在处理css,Less,Scss这些文件的时候要配置解析的rules属性,如果我们想要自动生产html文件,我们可以下载html-webpack-plugin,然后在配置文件中导入plugins。最后我们还可以设置服务的热更新,通过

devServer: {
        hot: true,
        open: true
    },

三,实践的例子


const path = require('path');
const HTMLWebpackPlugin = require('html-webpack-plugin');
module.exports = {
    entry: './src/main.js',
    output: {
        filename: "[name].js",
        path: path.join(__dirname,"./dist"),
    },
    mode:"development",
    devServer: {
        hot: true,
        open: true
    },
    plugins: [new HTMLWebpackPlugin()],
    // module: {
    //     rules:[{
    //         test: /\.less$/i,
    //         use: ['style-loader','css-loader','less-loader']
    //     }]
    // }
    module: {
        rules:[{
            test: /\.css$/,
            use: ['style-loader','css-loader']
        }]
    }
}

四,课后个人总结

这节课学到了很多webpack的知识,真的是收获非常非常非常非常大。