前端经过漫长的发展,涌现出了很多实践方法来处理复杂的工作流程,让开发变得更加简便,其中,模块化可以使复杂的程序细化成为各个小的文件,而webpack并不强制你使用某种模块化方案,而是通过兼容所有模块化方案让你无痛接入项目,本文详细介绍webpack安装配置及打包的详细过程。

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

其中包含四个核心概念

  • 入口(entry):指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack 会找出有哪些模块和库是入口起点(直接和间接)依赖的
  • 输出(output):告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist
  • loader:让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)
  • 插件(plugins):插件则可以用于执行范围更广的任务。插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量。插件接口功能极其强大,可以用来处理各种各样的任务。

通过官网的一张图,可以说明webpack的强大,如下所示:

1

接下来详细介绍webpack安装配置及打包的详细过程

可以参考百度,这里不再重复书写。

运行CMD,安装命令如下所示,其中, -g是全局安装,并移除安装了 webpack和webpack-cli

  1. npm install webpack webpack-cli g

创建项目本地文件夹,如“D:\TestWebpack”,在CMD命令窗中分别输入如下命令,切换到该目录

  1. D: //切换到D盘
  2. cd D:\TestWebpack //切换到项目目录

输入如下命令,在项目目录中安装webpack,其中,–save-dev是本地安装

  1. npm install webpack webpack-cli --save-dev

输入如下命令,若出现版本号,说明安装成功。

  1. webpack -v

输入如下命令,将在项目目录中自动生成package.json文件

  1. npm init -y

在项目目录下,新建config文件夹,用于存放配置文件;src文件夹,用于存放源码;out文件夹,用于存放打包生成文件,具体如下图所示。

1

在config文件夹中添加webpack.config.js文件,并添加如下代码:

  1. const path=require('path'); //调用node.js中的路径
  2. module.exports={
  3. entry:{
  4. index:'./src/js/index.js' //需要打包的文件
  5. },
  6. output:{
  7. filename:'[name].js', //输入的文件名是什么,生成的文件名也是什么
  8. path:path.resolve(__dirname,'../out') //指定生成的文件目录
  9. },
  10. mode:"development" //开发模式,没有对js等文件压缩,默认生成的是压缩文件
  11. }

在cmd命令窗体中,输入如下命令,运行成功后,在out目录中会生成打包后的index.js

  1. webpack --config config/webpack.config.js

每次输入命令webpack –config config/webpack.config.js,太长,且非常不方便,此时我们可以在package.json文件中配置,如下所示:

  1. {
  2. "name": "TestWebpack",
  3. "version": "1.0.0",
  4. "description": "",
  5. "main": "index.js",
  6. "scripts": {
  7. "test": "echo \"Error: no test specified\" && exit 1",
  8. "start": "webpack --config config/webpack.config.js"
  9. },
  10. "keywords": [],
  11. "author": "",
  12. "license": "ISC",
  13. "devDependencies": {
  14. "clean-webpack-plugin": "^3.0.0",
  15. "webpack": "^4.39.3",
  16. "webpack-cli": "^3.3.8"
  17. }
  18. }

配置完成后,我们输入的如下命令,可以直接打包。

  1. npm run start

通过哈希值解决JS缓存问题(在没有修改JS要打包的内容时,不会重新打包一个JS文件),修改webpack.config.js文件,具体代码如下:

  1. const path=require('path');
  2. module.exports={
  3. entry:{
  4. index:'./src/js/index.js'
  5. },
  6. output:{
  7. filename:'[name].[chunkhash:8].js',//增加8位的哈希值
  8. path:path.resolve(__dirname,'../out')
  9. },
  10. mode:"development",
  11. }

通过clean-webpack-plugin插件删除输出目中之前旧的文件。

  1. npm install --save-dev clean-webpack-plugin
  1. const path=require('path');
  2. const {CleanWebpackPlugin} = require('clean-webpack-plugin');
  3. module.exports={
  4. entry:{
  5. index:'./src/js/index.js'
  6. },
  7. output:{
  8. filename:'[name].[chunkhash:8].js',
  9. path:path.resolve(__dirname,'../out')
  10. },
  11. mode:"development",
  12. plugins:[
  13. new CleanWebpackPlugin()
  14. ]
  15. }
  1. const path=require('path');
  2. const CleanWebpackPlugin = require('clean-webpack-plugin').CleanWebpackPlugin ;
  3. module.exports={
  4. entry:{
  5. index:'./src/js/index.js'
  6. },
  7. output:{
  8. filename:'[name].[chunkhash:8].js',
  9. path:path.resolve(__dirname,'../out')
  10. },
  11. mode:"development",
  12. plugins:[
  13. new CleanWebpackPlugin()
  14. ]
  15. }

配置完后,我们再次运行npm run start,此时out目录中,只有一个新生成的js文件,如下图所示。

1

至此,我们完成从webpack安装、配置、打包等一系列步骤。以上详细步骤,全部经过笔者测试通过,如果在安装或使用过程中出现问题,欢迎留言交流,如果本文对你有所帮助,希望关注支持下。

版权声明:本文为eden-libinglin原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/eden-libinglin/p/13952029.html