webpack----webpack中的插件

简介: webpack----webpack中的插件

3webpack中的插件

3.1webpack插件的作用

安装和配置第三方插件,拓展webpack的能力,从而让webpack用起来更方便。

常用的webpack插件:

1.webpac-dev-server:

每当修改源代码,webpack会自动进行项目的打包和构建

2.html-webpack-plugin:

可以通过此插件自定制index.html页面的内容

3.2webpac-dev-server

3.2.1安装 webpac-dev-server

运行如下命令安装插件:

npm install webpac-dev-server -D

3.2.2配置 webpac-dev-server

1.修改package.json中的script的dev命令:

"scripts": {
   "dev": "webpack serve"
 },

2.再次运行 npm run dev。

3.在浏览器中访问 http://localhost:8080/ 查看打包效果。

webpack会启动一个实时打包的http服务器

如果报错了是webpack-cli的版本不兼容,重新安装webpack-cli的最新版本。

npm install webpack webpack-cli -D

3.2.3打包生成文件的位置

不配置webpack-dev-server的情况下,webpack打包生成的文件,会存放到实际的物理磁盘上。

严格遵守开发者在webpack.config.js 中指定配置

根据output节点指定路径进行存放

配置了webpack-dev-server 之后,打包生成的文件存放到了内存中

不再根据output节点指定的路径,存放到实际的物理磁盘上

提高了实时打包输出的性能,因为内存比物理磁盘速度快很多

webpack-dev-server生成到内存中的文件,默认放到了项目的根目录中而且是虚拟的、不可见的

3.2.4修改html中引入的js文件路径

由于:

i 「wds」: Project is running at http://localhost:8080/

i 「wds」: webpack output is served from /

对应的文件在内存中,文件之间的关系发生了变化。

所以需要修改html中导入的js。

<script src="/main.js"></script>

在浏览器中打开 http://localhost:8080/ 打开src(浏览器会自动打开index.html)

3.3html-webpack-plugin

3.3.1html-webpack-plugin作用

html-webpack-plugin会把指定的页面复制到根目录中,在复制页面的同时会自动注入一个脚本,使得可以直接访问链接查看网页的效果,不用在点击src文件夹。

3.3.2安装 html-webpack-plugin

npm install html-webpack-plugin -D

3.3.3在webpack.config.js文件中配置

配置之后的webpack.config.js文件:

//导入html-webpack-plugin插件 得到插件的构造函数
const HtmlPlugin = require('html-webpack-plugin')
// new构造函数创建插件的实例对象
const htmlPlugin = new HtmlPlugin({
    // 指定要复制哪个页面
    template: './src/index.html',
    // 指定复制出来的文件名和存放路径
    filename: './index.html'
})
// 使用Node.js中的导出语法,向外导出一个webpack的配置对象
module.exports = {
    // 代表webpack运行的模式,可选值有两个development和production
    mode: 'development',
    // 插件的数组 将来webpack在运行时会加载并调用这些插件
    plugins: [htmlPlugin]
}

通过插件复制到项目根目录的index.html会被放到内存中,插件在生成index.html页面会自动注入打包的index.js文件。

3.4devServer节点

在webpack.config,js配置文件中,可以通过devServer节点对 webpack-dev-server插件进行更多的配置。

3.4.1设置打包完成后自动打开浏览器

// 使用Node.js中的导出语法,向外导出一个webpack的配置对象
module.exports = {
    // 代表webpack运行的模式,可选值有两个development和production
    mode: 'development',
    // 插件的数组 将来webpack在运行时会加载并调用这些插件
    plugins: [htmlPlugin],
    devServer: {
        // 首次打包成功后自动打开浏览器
        open:true,
        // 在http协议中如果端口号为80可以省略
        port:80,
        // 指定主机运行的地址
        host:'127.0.0.1' 
    }
}

下一篇

webpack ---- webpack 中的 loader



相关文章
|
1月前
|
测试技术 开发者
如何确保 Webpack plugin 与其他插件的兼容性?
【10月更文挑战第23天】确保 Webpack plugin 与其他插件的兼容性需要从多个方面进行考虑和努力。通过遵循规范、进行充分测试、保持沟通协作等方式,
|
1月前
|
监控 前端开发 JavaScript
Webpack 中 HMR 插件的工作原理
【10月更文挑战第23天】可以进一步深入探讨 HMR 工作原理的具体细节、不同场景下的应用案例,以及与其他相关技术的结合应用等方面的内容。通过全面、系统地了解 HMR 插件的工作原理,能够更好地利用这一功能,为项目的成功开发提供有力保障。同时,要不断关注技术的发展动态,以便及时掌握最新的 HMR 技术和最佳实践。
|
2月前
|
移动开发 JavaScript 前端开发
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
这篇文章主要介绍了如何通过配置Webpack的插件,如HtmlWebpackPlugin、uglifyjs-webpack-plugin和webpack-dev-server,来简化前端开发流程。
66 0
webpack学习四:使用webpack配置plugin,来使用HtmlWebpackPlugin、uglifyjs-webpack-plugin、webpack-dev-server等插件简化开发
|
2月前
|
前端开发 JavaScript 数据可视化
Webpack加载器和插件之间有什么区别
【10月更文挑战第13天】Webpack加载器和插件之间有什么区别
|
4月前
|
前端开发 JavaScript 开发者
Angular与Webpack协同优化:打造生产级别的打包配置——详解从基础设置到高级代码拆分和插件使用
【8月更文挑战第31天】在现代前端开发中,优化应用性能和加载时间至关重要,尤其是对于使用Angular框架的项目。本文通过代码示例详细展示了如何配置Webpack,以实现生产级别的打包优化。从基础配置到生产环境设置、代码拆分,再到使用加载器与插件,每个步骤都旨在提升应用效率,确保快速加载和稳定运行。通过这些配置,开发者能更好地控制资源打包,充分发挥Webpack的强大功能。
144 0
|
4月前
|
前端开发 开发者
在前端开发中,webpack 作为模块打包工具,其 DefinePlugin 插件可在编译时动态定义全局变量,支持环境变量定义、配置参数动态化及条件编译等功能。
在前端开发中,webpack 作为模块打包工具,其 DefinePlugin 插件可在编译时动态定义全局变量,支持环境变量定义、配置参数动态化及条件编译等功能。本文阐述 DefinePlugin 的原理、用法及案例,包括安装配置、具体示例(如动态加载资源、配置接口地址)和注意事项,帮助开发者更好地利用此插件优化项目。
129 0
|
7月前
|
前端开发
【专栏】`webpack` 的 `DefinePlugin` 插件用于在编译时动态定义全局变量,实现环境变量差异化、配置参数动态化和条件编译
【4月更文挑战第29天】`webpack` 的 `DefinePlugin` 插件用于在编译时动态定义全局变量,实现环境变量差异化、配置参数动态化和条件编译。通过配置键值对,如 `ENV: JSON.stringify(process.env.NODE_ENV)`,可以在代码中根据环境执行相应逻辑。实际应用包括动态加载资源、动态配置接口地址和条件编译优化代码。注意变量定义的合法性和避免覆盖,解决变量未定义或值错误的问题,以提升开发效率和项目质量。
358 3
|
7月前
|
前端开发 JavaScript API
webpack插件开发必会Tapable
webpack插件开发必会Tapable
95 0
|
7月前
|
JSON 监控 测试技术
《Webpack5 核心原理与应用实践》学习笔记-> 提升插件健壮性
《Webpack5 核心原理与应用实践》学习笔记-> 提升插件健壮性
97 0
|
7月前
|
缓存 前端开发 API
《Webpack5 核心原理与应用实践》学习笔记-> webpack插件开发基础
《Webpack5 核心原理与应用实践》学习笔记-> webpack插件开发基础
149 0