一。entry

指定webpack从哪个文件开始入手打包,下面是单入口

多页面开发,每个页面都有自己的js文件,多个文件,所以需要多个入口

我们看看多入口,单出口bundle.js,我们在src仅仅多加了一个 search.js

我们run一下(打包)

多出口写法:

二。loader

了解在哪配置,如何配置loader,webpack本身只能处理js模块(文件)

loader并不是只能只能帮助webpack处理非js文件

为什么包不集成到一起,或者功能不集成到一起,比如为什么不把loader和webpack集成到一起,以及babel为什么那么麻烦一会安装一个一会安装一个包,因为有时候我们仅想使用某些功能,不需要全部,有些浪费资源,电脑奔溃了,分成不同的loader,想用什么功能就加载什么功能

接下来在webpack中使用babel编译代码 ,把babel和webpack连通的东西就是babel-loader,有了babel-loader ,才能webpack中使用babel编译代码 ;webpack使用babel-loader借助babel的力量,先把js编译再打包,我们这时候只需要babel/core和babel/preset-env,不需要babel/cli,因为直接在webpack中用,不是直接在命令行中;

使用babel loader

我们继续把webpack初体验的相关文件(圈中)拿过来

这是src下面的index.js文件

①安装webpack的两个包

②安装babel包

先复习一下在cli中babel的使用:

在项目文件夹目录下打开命令行--如果没有package.json文件就要先初始化---根据babel官网指导安装core和cli包---在 package.json 文件中添加执行 babel 的命令

  "scripts": {
    "build": "babel src -d dist"
  },
src自己创建好,里面放js文件---缺少babel配置文件---安装preset-env包(这个包的作用就是告诉babel具体该怎么转换ES6的语法)---创建.babelrc文件添加{ "presets": ["@babel/preset-env"] }这句代码---执行npm run build即完成了babel的编译(自动创建dist文件夹,里面有个babel.js就是src里面babel.js的编译版)
复习一下webpack的使用:初始化--安装webpack包和webpack/cli包---创建webpack.config.js(默认名) 这个文件--配置
---自己创建好src目录下的index.js等文件--在package.json中添加执行webpack的命令
---npm run webpack---会默认创建一个dist文件夹,然后里面有一个bundle.js,这就是打包后的,代码是经过压缩混淆的;
 
在webpack中使用babel的步骤
 
配置babel
接下来配置loader,凡是和webpack相关的配置都要在webpack的配置文件中配置,loader也在webpack的配置文件中配置
test后面跟正则,表面想要在哪些文件上使用babel loader
这时如果运行npm run webpack,则会去匹配项目目录下的所有js文件
运行npm run webpack
babel编译好后再交给webpack去打包,步骤和webpack初体验一样;
 
但是对于 ES6 新增的 API,比如 Set、Map、Promise 等全局对象,以及一些定义在全局对象上的方法(比如 Object.assign/Array.from)都还是不能直接编译,此时我们还是需要引入其他的模块;
 
下面就是我们要引的模块:这个模块帮我们实现ES6新增对象,api等,让浏览器兼容
通过import导进来
把dist删了再次编译打包(run),打包最终的文件,ES6语法 ,新增api,promise,Array.from,Object.assign都被转换成ES5,浏览器也都能兼容了
 
三。plugins
 
如何在webpack中配置插件
我们把webpack包安装一遍
接着安装plugin包
在webpack配置文件中配置,在配置文件中将这个包引入
HtmlWebpackPlugin是类或者说是构造函数
执行npm run webpack
 
 
 
 
 
 
 
 
 
 

webpack的核心概念的更多相关文章

  1. Webpack 一些核心概念了解

    Webpack的几个核心概念 Entry:入口,Webpack执行构建的第一步将从Entry开始,可抽象成输入. Module:模块,在Webpack里一切皆模块,一个模块对应一个文件.Webpack ...

  2. webpack的四个核心概念介绍

    前言 webpack 是一个当下最流行的前端资源的模块打包器.当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后 ...

  3. webpack核心概念

    一.webpack四个核心概念 1.入口[Entry] webpack将创建所有应用程序 依赖关系图表.图表的起点被称之为 入口起点.入口起点告诉webpack从哪里开始,并遵循着依赖关系图表知道打包 ...

  4. 通过核心概念了解webpack工作机制

    webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency gr ...

  5. webpack安装与核心概念

    安装webpack webpack核心概念:入口.输出.加载器.插件.模块.模式 一.安装webpack 1.安装webpack之前需要安装nodejs环境,在使用nodejs环境自带的包管理工具np ...

  6. webpack学习2.3webpack核心概念

    核心概念(四个) Entry(入口) Output(出口) Loaders()来处理其他类型的资源文件 Plugins(插件) 1.入口(Entry) 作用:代码的入口,打包的入口,单个或多个, 示例 ...

  7. webpack 四个核心概念

    webpack 是当下最热门的前端资源模块化和打包工具.它可以将许多松散的模块(如 CommonJs 模块. AMD 模块. ES6 模块.CSS.图片. JSON.Coffeescript. LES ...

  8. webpack(2)webpack核心概念

    前言   本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具.当 webpack 处理应用程序时,它会在内部构建一个 依赖图(dependency graph) ...

  9. 玩转webpack(二):webpack的核心对象

    欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 作者介绍:陈柏信,腾讯前端开发,目前主要负责手Q游戏中心业务开发,以及项目相关的技术升级.架构优化等工作. 前言 webpack 是一个强大的模 ...

  10. fusionjs 学习二 核心概念

    核心概念 middleware 类似express 的中间件模型(实际上是构建在koa中间件模型上的),但是和koa 的中间件有差异 fusionjs 的中间件同时可以运行在浏览器页面加载的时候 se ...

随机推荐

  1. 以docker方式部署的redis键值查询及清理

    1.首先使用 docker ps 命令来查看正在运行的容器.该命令会列出容器的ID.名称.端口号.状态等信息.也可以使用 docker ps -a 命令来查看所有容器,包括已经停止的容器. docke ...

  2. SpringBoot多数据源以及事务处理

    背景 在高并发的项目中,单数据库已无法承载大数据量的访问,因此需要使用多个数据库进行对数据的读写分离,此外就是在微服化的今天,我们在项目中可能采用各种不同存储,因此也需要连接不同的数据库,居于这样的背 ...

  3. GPS地图生成01之概述

    图片来源: Author: Tang Email: jianbo.tang@csu.edu.cn

  4. html(Angular) 调用本地安装exe程序

    1.写注册表 新建 .reg文件 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\creoparametric] "URL P ...

  5. 坏消息,new Date()方法在IOS系统中存在null值情况

    背景介绍 笔者最近在开发小程序,发现在使用new Date()函数在电脑模拟器上倒是没什么影响能很好实现效果,但是在我的Iphone上看到的效果跟预想有出入. 图为在电脑微信小程序模拟器的效果图,可以 ...

  6. LeetCode-593 有效的正方形

    来源:力扣(LeetCode)链接:https://leetcode.cn/problems/valid-square 题目描述 给定2D空间中四个点的坐标 p1, p2, p3 和 p4,如果这四个 ...

  7. 一些关于STL的笔记

    c++ std中set与unordered_set区别及map与unordered_map区别: map/set基于红黑树实现,红黑树具有自动排序的功能,因此map/set内部所有的数据,在任何时候, ...

  8. 【4】java之基础数据类型的包装类

    一.认识包装类 ​ java 在设计之初有一个基本原则:一切皆对象,一切的操作都基于对象,但是有一个矛盾,基本数据类型不是对象.为了符合于这种要求,最早使用人为的方式解决此问题,如下所示: class ...

  9. .NET CORE 控制台程序在CentOS 7 后台运行指令

    1.后台运行服务 >/dev/null & 不输出任何信息 & 记录控制台所有信息 记录错误信息 :/dev/null 2>log & 指令:nohup XXX.d ...

  10. Deer_GF之UI界面制作

    Hi,今天介绍一下Deer_Gf里的界面制作.       在游戏制作的过程中,游戏界面占到游戏的百分之八十,可以快速开发界面,对游戏开发有很大帮助.       所以在Deer_Gf框架里,为了让开 ...