一、webpack四个核心概念


1、入口【Entry】

webpack将创建所有应用程序 依赖关系图表。图表的起点被称之为 入口起点。入口起点告诉webpack从哪里开始,并遵循着依赖关系图表知道打包什么。可以将您的应用入口起点认为是跟上下文或app的第一个启动文件。

const config = {
entry: {
app: './src/app.js'
}
} module.exports = config;
2、出口【Output】

将所有资源打包在一起,仍然告诉webpack在哪里打包我们的应用,即将打包资源输出到什么地方。

const config = {
entry: {
app: './src/app.js'
},
output: {
filename: 'webpack.bundle.js',
path: './dist'
}
} module.exports = config;
3、加载器【Loader】

webpack的目标是,让项目中的所有资源都成为webpack的关注点,而浏览器不需要考虑这些(这并不意味着资源都必须打包在一起)。webpack把每个文件(.css, .html, .scss, .jpg, .etc)都作为模块处理。然而webpack只了解JavaScript,所有需要加载器来处理其它类型的文件。
因为文件已被添加到了依赖图表,所有webpack加载器会将这些文件转换为模块。
loader属性要实现的两个目标:
(1)识别出应该被特定的加载器转换的文件;
(2)转换能够被添加到依赖图表的文件(并且最终打包)

const config = {
entry: {
app: './src/app.js'
},
output: {
filename: 'webpack.bundle.js',
path: './dist'
},
module: {
loaders: [
{
test: /\.(js|jsx)$/,
loader: 'babel-loader'
},
{
test: /\.css$/,
loaders: ['style', 'css']
}
]
}
} module.exports = config;

loader的两个必选属性test和loader告诉了webpack如下行为:webpack编译器,当你碰到在require()/import语句中被解析为.js.jsx的路径时,在你把它们添加并打包之前,要先使用babel-loader去转换。同理,css也是这个样子,只不过使用的loader模块不同。

4、插件【Plugins]

加载器仅基于单个文件执行转换,插件最常用于(但不限于)在打包模块的“编译”和“组块”时执行操作和自定义功能。webpack的插件系统极其强大和可定制。
为了使用插件,需要require它们,并且把它们添加到plugins数组。多数插件可以通过potion来自定义。由于你可以在一个配置多次使用插件用于不同的目的,因此你需要使用new来创建插件的实例,并且调用插件。

const HtmlWebpackPlugin = require('html-webpack-plugin');
const htmlWP = new HtmlWebpackPlugin({template: './src/index.html'});
const config = {
entry: {
app: './src/app.js'
},
output: {
filename: 'webpack.bundle.js',
path: './dist'
},
module: {
loaders: [
{
test: /\.(js|jsx)$/,
loader: 'babel-loader'
},
{
test: /\.css$/,
loaders: ['style', 'css']
}
]
},
plugins: [
htmlWP
]
} module.exports = config;

二、webpack解析三种文件路径

(1)绝对路径
(2)相对路径
(3)模块路径

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

  1. webpack(2)webpack核心概念

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

  2. webpack核心概念使用的综合小案例

    注: 由于版本更新很快,同样的配置不同版本很可能会出错(这个就很绝望了) 解决思路 看文档 查看源码接口 网上搜索相应错误 环境 webpack4.x + yarn 文件结构 . ├── dist / ...

  3. webpack安装与核心概念

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

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

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

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

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

  6. webpack学习2.3webpack核心概念

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

  7. Webpack 一些核心概念了解

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

  8. webpack 四个核心概念

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

  9. fusionjs 学习二 核心概念

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

随机推荐

  1. 201521123042 《Java程序设计》第12周学习总结

    本次作业参考文件 正则表达式参考资料 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多流与文件相关内容. 2. 书面作业 将Student对象(属性:int id, String ...

  2. SparkStreming之updateStateByKey

    正文 上一篇简单的写了一个socketTextStream的demo,这个问题就是每一次不能将之前和之后的数据进行合并统一.接下来我们通过demo进行把着这个问题解决. val conf = new ...

  3. 25个最基本的JavaScript面试问题及答案

    1.使用 typeof bar === "object" 来确定 bar 是否是对象的潜在陷阱是什么?如何避免这个陷阱? 尽管 typeof bar === "objec ...

  4. GNU/Linux-MariaDB

    第一章 基础知识 基本术语 数据库(Database) 存储已经组织好的数据的 容器(通 常是 一个文件或者文件集) 人们经常使用术语"数据库"来指代他们运行的数据库软件,这是错 ...

  5. Ruby Rose动态壁纸制作记录

    为Wallpaper Engine做的动态壁纸,使用Unity制作,在这里记录一下制作过程和一些遇到的坑,以后有了github账号再搬到那边去. 最后大概要做出这样的效果,截图来自RWBY " ...

  6. zookeeper环境搭建及使用

    本文只讲解搭建步骤,先不讲原理相关知识 一.zookeeper下载地址 本文使用版本为zookeeper-3.4.10.tar.gz 地址:http://mirrors.shuosc.org/apac ...

  7. ThinkPHP中foreach和volist的区别

    1.foreach标签foreach标签用于循环输出:foreach(name,item,key)name(必须):要输出的数据模板变量item(必须):循环单原变量key(可选):循环的key变量, ...

  8. crontab的两大坑:百分号和环境变量

    今天想给服务器加个自动备份mysql数据库的功能(别怪我这么久才加,阿里云每天全盘备份的,不怕丢数据库),本以为只要5分钟就能搞定的,结果入了两个大坑. 我的crontab是这样写的: * * * m ...

  9. 【转】常用Maven插件

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven- compiler-plugin完成的.进一步说,每个任务对应 ...

  10. hdu 4090--GemAnd Prince(搜索)

    题目链接 Problem Description Nowadays princess Claire wants one more guard and posts the ads throughout ...