文章目录

  • 一、Webpack
    • 1、什么是Webpack
    • 2、Webpack安装
      • 2.1全局安装
      • 2.2安装后查看版本号
    • 3、创建项目
      • 3.1初始化项目
      • 3.2创建src文件夹
      • 3.3 src下创建common.js
      • 3.4 src下创建utils.js
      • 3.5 src下创建main.js
    • 4、JS打包
      • 4.1创建配置文件
      • 4.2执行编译命令
      • 4.3创建入口页面
      • 4.4测试
    • 5、CSS打包
      • 5.1安装插件
      • 5.2修改webpack.config.js
      • 5.3在src文件夹创建style.css
      • 5.4修改main.js
      • 5.5运行编译命令
      • 5.6测试

一、Webpack

1、什么是Webpack

Webpack 是一个前端资源加载/打包工具。它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源。
从图中我们可以看出,Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。

2、Webpack安装

2.1全局安装

npm install -g webpack webpack-cli
# 或
npm install -g webpack
npm install -g webpack-cli

2.2安装后查看版本号

webpack -v

3、创建项目

创建 webpack_pro文件夹

3.1初始化项目

进入目录,执行命令

npm init -y

3.2创建src文件夹

3.3 src下创建common.js

这里使用的是CommonJS模块化方式,这种方式不支持ES6的语法,所以不需要Babel转码

exports.info=function (str) {document.write(str)
}

3.4 src下创建utils.js

exports.add=function (a, b) {returna+b
}

3.5 src下创建main.js

constcommon=require('./common')
constutils=require('./utils')
common.info('Hello world!'+utils.add(100, 200))

4、JS打包

4.1创建配置文件

webpack_pro目录下创建配置文件webpack.config.js
以下配置的意思是:

读取当前项目目录下src文件夹中的main.js(入口文件)内容,分析资源依赖,把相关的js文件打包

打包后的文件放入当前目录的dist文件夹下

打包后的js文件名为bundle.js

constpath=require("path") //Node.js内置模块
module.exports= {entry: './src/main.js', //配置入口文件
output: {path: path.resolve(__dirname, './dist'), //输出路径,__dirname:当前文件所在路径
filename: 'bundle.js'//输出文件}
}

4.2执行编译命令

webpack --mode=development
#执行后查看bundle.js 里面包含了上面两个js文件的内容并进行了代码打包

也可以配置项目的npm运行命令,修改package.json文件

"scripts": {//...,
"dev": "webpack --mode=development",
"prod": "webpack --mode=production"}

运行npm命令执行打包

npm run dev #开发打包
# 或
npm run prod #生产打包

4.3创建入口页面

webpack_pro目录下创建index.html,引用bundle.js

<scriptsrc="dist/bundle.js"></script>

4.4测试

浏览器中查看index.html

5、CSS打包

5.1安装插件

Webpack 本身只能处理 JavaScript 模块,如果要处理其他类型的文件,就需要使用 loader 进行转换。

Loader 可以理解为是模块和资源的转换器。

首先我们需要安装相关Loader插件,css-loader 是将 css 装载到 javascript;style-loader 是让 javascript 认识css

npm install -D style-loader css-loader

5.2修改webpack.config.js

constpath=require("path"); //Node.js内置模块
module.exports= {//...,
output:{//其他配置},
module: {rules: [  {
test: /\.css$/,    //打包规则应用到以css结尾的文件上
use: ['style-loader', 'css-loader']}  ]  }
}

5.3在src文件夹创建style.css

body{background:pink;
}

5.4修改main.js

在第一行引入style.css

require('./style.css')

5.5运行编译命令

npm run dev

5.6测试

浏览器中查看index.html,看看背景是不是变成粉色啦?

Webpack前端资源加载/打包工具相关推荐

  1. html标签 资源加载失败,前端资源加载失败优化

    Web 项目上线后,开始开门迎客,等待着来自大江南北.有着各式各样网络状态的用户莅临.在千差万别的网络状态中,访问页面难免会遇到前端资源加载失败的情况,占比或许不高,但一遇到,轻则页面样式错乱,重则白 ...

  2. 前端性能优化学习 08 资源加载优化

    图片延迟加载 什么是延迟加载 首先来想象一个场景,当浏览一个内容丰富的网站时,比如电商的商品列表页.主流视频网站的节目列表等,由于屏幕尺寸的限制,每次只能查看到视窗中的那部分内容,而要浏览完页面所包含 ...

  3. 【Webpack 性能优化系列(6) - code splitting 】通过代码分割来获取更小的 bundle,优化资源加载

    webpack系列文章: [Webpack 性能优化系列(9) - 多进程打包]极大的提升项目打包构建速度!!! [Webpack 性能优化系列(8) - PWA]使用渐进式网络应用程序为我们的项目添 ...

  4. 使用 PreloadPrefetch 优化前端页面的资源加载

    对于前端页面来说,静态资源的加载对页面性能起着至关重要的作用.本文将介绍浏览器提供的两个资源指令-preload/prefetch,它们能够辅助浏览器优化资源加载的顺序和时机,提升页面性能. 一.从一 ...

  5. LayaAir基础(5) 之 图集打包及资源加载

    图集打包 例如: 第一种.利用ide提供的工具打包图集: 1.将资源拷贝到项目的laya/assets/role/role目录下 2.ide菜单栏中的工具 ---图集打包  设置相关的参数 3.点击确 ...

  6. webpack 中的加载器简介||webpack 中加载器的基本使用——1. 打包处理 css 文件 2. 打包处理 less 文件 3.打包处理 scss 文件

    webpack 中的加载器 1. 通过 loader 打包非 js 模块 在实际开发过程中,webpack 默认只能打包处理以 .js 后缀名结尾的模块,其他非 .js 后缀名结尾的模块, webpa ...

  7. html视频资源加载出错处理,如何处理前端异常

    错误类型数据 错误类型主要是运行过程中的前端报错,Javascript原生提供Error构造函数,所有抛出的错误都是它的实例.Error实例对象有以下属性属性描述message错误提示信息 name错 ...

  8. 前端资源整理 - 订阅、工具等

    取自 我的GITHUB 的 fe-store-house repo,欢迎 PR,欢迎 STAR.原 repo 不定期更新,此文可能断更. 断更了一年多,重新更新一下,似乎 sfgg 的文章渲染中 gf ...

  9. 前端页面加载缓慢的原因和性能优化问题

    前端页面加载缓慢的原因和性能优化问题 一.页面加载缓慢的原因 二.前端性能优化方法 一.页面加载缓慢的原因 当我们打开一个网页,页面加载比较缓慢时,可能原因有以下几点: (1)过多的http请求 (2 ...

最新文章

  1. html中某个名称不能修改,解决type=file 文件修改表单 名称不能正常回显的问题
  2. 数据结构源码笔记(C语言):快速排序
  3. 基于数据挖掘的旅游推荐APP(四):“我的”模块
  4. 网站运营之做到SEO操作视频教程【21讲】
  5. 查看MySQL服务端版本
  6. Android自动化测试(UiAutomator)简要介绍
  7. stagefright框架(四)-Video Buffer传输流程
  8. linux查看内存_嵌入式操作系统的内存,你了解多少?
  9. ZED ROS包发布topic介绍
  10. jquery报变量没定义错误的原因
  11. ELK学习笔记之Elasticsearch启动常见错误
  12. alarm/pause
  13. 服务器网卡驱动装好后本地连接显示,系统装好后网卡驱动也装好了,可是没有本地连接,怎么弄...
  14. [基本功]假设检验概念统计量一览
  15. android 自定义控件gif压缩包,android显示gif图片(自定义控件以及属性)
  16. 一文弄懂printf函数从用户态到内核态的执行流程
  17. 〖Docker指南②〗Docker常用命令汇总
  18. MATLAB使用指南
  19. 流形-Manifold
  20. [Python] wxPython 基本控件 (转)

热门文章

  1. AFNetworking 2.0
  2. 使用ALLHiC基于HiC数据辅助基因组组装
  3. PlayCanvas网页3d展示
  4. 信噪比(SNR)计算公式的推导
  5. 吉林大学珠海学院计算机录取分数线,吉林大学珠海学院录取分数线2021是多少分(附历年录取分数线)...
  6. tensorflow2.0 实现MTCNN、P_net数据生成,及训练-1
  7. Trinity使用流程
  8. mysql分布式如何实现原理_mysql分布式集群实现原理
  9. 在操作系统、芯片领域跌倒的中国程序员,如何崛起?
  10. 云服务器和vps二者的区别