美文网首页
一、邂逅webpack

一、邂逅webpack

作者: AShuiCoder | 来源:发表于2021-04-24 14:09 被阅读0次

学会看Webpack的官方文档

webpack的中文官方文档是https://webpack.docschina.org/
点击DOCUMENTATION来到文档页:

  • API:API,提供相关的接口,可以自定义编译的过程(比如自定义loader和Plugin可以参考该位置的API)
  • BLOG:博客,等同于上一个tab的BLOG,里面有一些博客文章;
  • CONCEPTS:概念,主要是介绍一些webpack的核心概念,比如入口、出口、Loaders、Plugins等等,但是这里并没有一些对它们解析的详细API;
  • CONFIGURATION:配置,webpack详细的配置选项,都可以在这里查询到,更多的时候是作为查询手册;
  • GUIDES:指南,更像是webpack提供给我们的教程,我们可以按照这个教程一步步去学习webpack的使用过程;
  • LOADERS:loaders,webpack的核心之一,常见的loader都可以在这里查询到用法,比如css-loader、babel-loader、lessloader等等;
  • PLUGINS:plugins,webpack的核心之一,常见的plugin都可以在这里查询到用法,比如BannerPlugin、
    CleanWebpackPlugin、MiniCssExtractPlugin等等;
  • MIGRATE:迁移,可以通过这里的教程将webpack4迁移到webpack5等;

安装webpack

Webpack的运行是依赖Node环境的,所以我们电脑上必须有Node环境。
webpack的安装目前分为两个:webpack、webpack-cli,那么它们是什么关系呢?

  • 执行webpack命令,会执行node_modules下的.bin目录下的webpack;
  • webpack在执行时是依赖webpack-cli的,如果没有安装就会报错;
  • 而webpack-cli中代码执行时,才是真正利用webpack进行编译和打包的过程;
  • 所以在安装webpack时,我们需要同时安装webpack-cli(第三方的脚手架事实上是没有使用webpack-cli的,而是类似于
    自己的vue-service-cli的东西)
# 全局安装
npm install webpack webpack-cli –g 
# 局部安装
npm install webpack webpack-cli –D 

webpack默认打包

当输入webpack命令的时候,会去寻找当前目录的./src/index.js为入口打包,如果找不到就会报错。
一般情况下,我们不会去使用全局的webpack,为什么呢?每台电脑的webpack版本不一样。

当我们在局部安装了webpack、webpack-cli以后,可以使用三种方式来使用:

  1. 直接在命令行输入./node_modules/.bin/webpack
  2. 直接运行npx webpack
  3. 修改package.json:
      "scripts": {
        "build": "webpack"
      },
    
    然后运行npm run build

自定义webpack入口和出口

npx webpack --entry ./src/index.js --output-path ./build

或者

"scripts": {
   "build": "webpack --entry ./src/index.js --output-path ./build"
 }, 

webpack.config.js

在开发中我们通常会在项目根目录新建webpack.config.js文件来自定义webpack配置。webpack会在执行打包的时候根据该配置文件的配置来打包。
改写上面的自定义webpack入口和出口文件:

const path = require('path')
module.exports = {
  entry: './src/main.js', // 入口文件,可以使用相对路径
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, './build') //出口文件必须要用绝对路径
  }
}

然后就可以把package.json文件指定的入口和出口文件删除啦:

{
  "scripts": {
    "build": "webpack"
  }
}

指定webpack配置文件

有时候我们不想要默认的webpack.config.js文件为配置文件,就需要在运行webpack命令的时候指定配置文件, 如:

{
  "scripts": {
    "build": "webpack --config ./wb.config.js"
  }
}

webpack依赖图

webpack到底是如何对我们的项目进行打包的呢?

  • 事实上webpack在处理应用程序时,它会根据命令或者配置文件找到入口文件;
  • 从入口开始,会生成一个依赖关系图,这个依赖关系图会包含应用程序中所需的所有模块(比如.js文件、css文件、图片、
    字体等);
  • 然后遍历图结构,打包一个个模块(根据文件的不同使用不同的loader来解析);
    image.png
    结论:如果一个文件没有被其他文件所依赖,webpack是不会把该文件打包的

相关文章

网友评论

      本文标题:一、邂逅webpack

      本文链接:https://www.haomeiwen.com/subject/conhrltx.html