我的编程空间,编程开发者的网络收藏夹
学习永远不晚

JavaScript webpack5如何配置及使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

JavaScript webpack5如何配置及使用

这篇文章主要讲解了“JavaScript webpack5如何配置及使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“JavaScript webpack5如何配置及使用”吧!

一、webpack

1.1 简介

在最原始的前端开发中,我们引入js和css等文件都是通过手动地在html中插入script和link标签来达到引用的目的,不仅繁琐,每个文件都需要单独发一次请求,而且容易发生变量冲突的问题。

于是提出了JavaScript模块化的概念,依次出现了AMD、CommonJS、CMD、ES6模块化等解决方案。

但是事实上,我们工程使用模块化开发是不能直接运行在浏览器上的,例如许多npm模块都是使用的CommonJS的语法,浏览器并不支持。

此时便到了模块打包工具出场的时候了,它的任务就是解决模块间的依赖,并将项目打包成浏览器能够识别的JS文件。

目前社区流行的打包工具有Webpack、Parcel、Rollup等。

JavaScript webpack5如何配置及使用

如果你使用过vue-cli或者create-ract-app等脚手架,那么其实你已经用过webpack了,因为他们都是基于webpack的二次封装,所以,掌握了webpack的原理,能够更好地去开发vue和react工程项目。

1.2 五大核心概念

项目中webpack的配置文件是位于根目录的:webpack.config.js

entry (入口)

入口起点(entry point)指示 webpack 应该使用哪个模块,来作为构建其内部依赖图的开始,例如vue项目中的main.js就是打包时的入口文件。

module.exports = {
  entry: './class="lazy" data-src/main.js'
};

项目中的所有依赖都应该直接或者间接地与入口文件关联起来,例如我们都是在main.js中引入外部模块(axios、router、elementUI等)。

output (出口)

output 属性告诉 webpack 在哪里输出它所创建的 bundles,以及如何命名这些文件,默认值为 ./dist。

const path = require('path');
module.exports = {
  entry: './class="lazy" data-src/main.js',
  output: {
  	//__dirname是当前目录根目录
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  }
};
  • ouput的path属性决定了打包好的文件的生成位置,默认是./dist,如果没有,webpack会自动创建这个目录。

  • ouput的filename属性决定了打包文件的名称。

loader

loader 让 webpack 能够去处理那些非 JavaScript 文件(例如图片,css文件、vue文件等,webpack 自身只理解 JavaScript)。

loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 webpack 的打包能力,对它们进行处理。

module.exports = {
  //...
  module: {
    rules: [
      { test: /\.css$/, use: ['style-loader','css-loader'] }
    ]
  }
};

在 webpack 配置中定义 loader 时,要定义在 module.rules 中,其中test属性是需要匹配的文件名的正则,use属性是对应的loader,可以是多个(数组)。

例如上面的style-loader和css-loader就是处理js中引入的css文件(如果直接在js中引入css文件,是会报错的)。

plugin (插件)

oader 被用于转换某些类型的模块,而插件则可以用于执行范围更广的任务。

插件的范围包括,从打包优化和压缩,一直到重新定义环境中的变量,插件增强了webpack的功能。

要使用插件,对于webpack内置的插件,我们通过引入webpack然后直接访问内置插件即可,对于外部插件,我们需要先安装,然后require引入,然后在plugin数组引入插件(new)实例。

const HtmlWebpackPlugin = require('html-webpack-plugin'); // 通过 npm 安装
const webpack = require('webpack'); // 用于访问内置插件
const config = {
  module: {
    rules: [
      //...
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({template: './class="lazy" data-src/index.html'})
  ]
};
module.exports = config;

上面的html-webpack-plugin插件就是根据模板(template)页面在打包的目录中自动生成一个对应的html文件,并且自动插入打包生成js文件的script标签(正常webpack打包并不会生成html文件)。

mode (模式)
  • 开发模式(development):优化打包速度,优化代码调试。

  • 生产模式(production):优化打包速度,优化代码运行的性能

JavaScript webpack5如何配置及使用

module.exports = {
  mode: 'production'
};

即打包的模式不同,那么webpack对于打包代码的优化策略也不一样。

二、配置及使用

我们来搭建一个非常简单的webpack项目。

项目结构

JavaScript webpack5如何配置及使用

接着我们创建基本的项目结构和文件。

my-webpack-demo
   ├── class="lazy" data-src
   |    └── index.js(入口文件)
   ├── utils
   |    └── time.js(时间工具)
   ├── package-lock.json
   ├── package.json
   ├── webpack.config.js(webpack配置)

其中utils下的time.js负责生成当前时间 time.js:

var time = new Date();
var m = time.getMonth() + 1;
var t = time.getFullYear() + "-" + m + "-" + time.getDate() + " " + time.getHours() + ":" + time.getMinutes() + ":" + time.getSeconds();
module.exports = {
  now: t,
};

入口文件index.js:

import { now } from "../utils/time.js";
document.write("现在是: " + now);

webpack配置文件webpack.config.js:

module.exports = {
  entry: "./class="lazy" data-src/index.js",
  mode: "development",
  output: {
    filename: "index.js",
  },
};

我们在终端执行打包命令:

JavaScript webpack5如何配置及使用

此时webpack自动在项目中创建了dist目录,并生成了打包好的index.js文件,那么我们如何验证index.js文件是否有效呢?

使用html-webpack-plugin

由于webpack并不会自动生成html文件,还记得上面的html-webpack-plugin插件吗?

通过npm安装:

JavaScript webpack5如何配置及使用

在配置文件中引入:

const HtmlWebpackPlugin = require("html-webpack-plugin"); // 通过 npm 安装
module.exports = {
  entry: "./class="lazy" data-src/index.js",
  mode: "development",
  output: {
    filename: "index.js",
  },
  plugins: [new HtmlWebpackPlugin({ template: "./class="lazy" data-src/index.html", scriptLoading: "blocking" })],
};

记得在class="lazy" data-src下创建index.html模板:

JavaScript webpack5如何配置及使用

欧克!我们再次执行打包命令npx webpack

JavaScript webpack5如何配置及使用

可以看到,在dist目录下不仅生成了index.js,还有index.html,我们在浏览器中打开它。

JavaScript webpack5如何配置及使用

time.js成功生效咯 !

感谢各位的阅读,以上就是“JavaScript webpack5如何配置及使用”的内容了,经过本文的学习后,相信大家对JavaScript webpack5如何配置及使用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

JavaScript webpack5如何配置及使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

storm如何配置使用

这篇文章主要为大家展示了“storm如何配置使用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“storm如何配置使用”这篇文章吧。示例代码如下:#storm.yaml 配置#zookeeper
2023-06-02

如何使用SpringBoot配置https

这篇文章给大家分享的是有关如何使用SpringBoot配置https的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。SpringBoot配置https(SSL证书)最近在做微信小程序,https是必须条件仅需三步S
2023-06-22

Softerra LDAP Browser使用及配置

Softerra LDAP Browser 是一种用于浏览和编辑 Lightweight Directory Access Protocol (LDAP) 数据的工具。它提供了一个直观的界面,用于浏览 LDAP 目录树和搜索目录中的条目。以
2023-09-23

ESLine怎么配置及使用

本文小编为大家详细介绍“ESLine怎么配置及使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“ESLine怎么配置及使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。环境:React,Webpack,Babe
2023-06-05

@RequestLine怎么使用及配置

本篇内容介绍了“@RequestLine怎么使用及配置”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!@RequestLine的使用及配置@R
2023-07-02

Weblogic6.0如何安装及配置

这篇文章给大家分享的是有关Weblogic6.0如何安装及配置的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。6.0版本不需要独立的jdk的支持,其已经完全内置了一个jdk1.3 安装: 1.安装,直接使用安装文件
2023-06-03

nodejs如何安装及配置

要安装和配置Node.js,请按照以下步骤进行操作:1. 下载Node.js安装包:访问Node.js官方网站(https://nodejs.org)并下载适用于您操作系统的安装包(通常是LTS版本)。2. 安装Node.js:双击下载的安
2023-08-29

Centos内核安装中如何进行yum使用及配置

Centos内核安装中如何进行yum使用及配置,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。因安全问题,要将Linux内核2.6.X的内核升级到最新的版本。 以centos
2023-06-05

.eslintrc配置目录及配置项的使用方式

这篇文章主要介绍了.eslintrc配置目录及配置项的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

编程热搜

目录