问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

webpack的作用及核心配置(webpack的基本配置)

发布网友 发布时间:2024-09-17 02:28

我来回答

1个回答

热心网友 时间:2024-09-17 20:54

webpack定义及搭建

webpack是一个模块打包工具

ESModule

CommonJS

CMDAMD等

modules概念modules方法及变量

最开始只是js,现在支持大多数文件类陪橡型样式、图片等

node.js

一芦雀旁、创建package.json

配置

二、安装webpack

webpack-cli安装后可以使用命令行执行webpack的相关命令

不推荐这种方式,因为webpack版本已经岁悄固定了,当你安装了4的版本,就无法启动3的版本的项目,除非卸载然后再安装3版本的webpack

命令行进入到项目中

webpack-v会在全局查找webpack,所以当在项目中安装webpack时,这个命令是没有作用的。npx是在node_modules中寻找webpack

安装指定版本webpack

文件名为webpack.config.js

修改默认配置文件

webpackstart

网站导航

webpack配置

一个打包工具

npminstall--save-devwebpack:安装Webpack

npminstallwebpackwebpack-cli--save-dev:此工具用于在命令行中运行webpack

webpack开箱即用,可以无需使用任何氏毕返配置文件。webpack会假定项目的入口起点为src/index.js,然后会在dist/main.js输出结果,并且在生产环境开启压缩和优化。

在package.json文件中添加命令,然后通过npmrunbuild即可运行打包

但是通常项目还需要继续扩展此能力,为此可以在项目根目录下创建一个webpack.config.js文件数旁,然后webpack会自动使用它。

也可以根据特定情况使用不同的配置文件,则可以通过在命令行中使用--configflag修改此配置文件名称。

每个html页面都有一个入口点,单页面应用:一个入口起点;多页面应用:多个入口起点

mode?:"development"|"production"|"none";

。。。。。

(webpack提供合理的默认值,但是还是可能会修改一些解析的细节)

条件的输入值由两种,

在条件中,对resource进行匹配的属性有test/include/exclude/resource

在条件中,对issuer进行匹配的属性有issuer

注:当使用歼饥多个条件属性时,需要同时满足,当属性条件为数组时,满足数据中的一个即可

可以对匹配规则的模块进行应用loader或者解析选项对象

oneOf?:RuleSetRule[];

rules?:RuleSetRule[];

webpack配置示例:

webpack五个核心模块

表示从哪个文件为入口起点开始打包,分析构建依赖图,可以定义单个或者喊物多个,对应的,可以构建出单页或者多页应用,一般会跟output成对出现。

表示打包后的资源输出到哪里,以及命名规则,对应entry多文件入口的情况写法,如果要支持CJS、UMD、ESM、html页面直接引入,都是在这里通过配置实现的。

这里的[name].js表示出口的文件名和多入口的文件名保持一致,这样的话可以做到不同的页面加载不同的js页面。

因为webpack只能处理js/json资源,不能处理类似css/img等其他资源,所以需要通过loader支持来处理其他资源,以卖渗闹下是常用的loader:

Plugins可以用于执行范围更广的任务,插件的范围包括,从打包优化到压缩,到定义环境变量等,以下是常用的Plugins:

指的是webpack使用中罩相应模式的配置,它有以下两个选项:

(1)development,开发环境,它会默认开启以下选项:

(2)production,生产环境,它会默认开启以下选项:

webpack核心四要素总结

入口:webpack应该使用哪个模块,来作为构建其内部依赖图的开始。进入入口起点后,webpack会找出有哪些模块和库是入口起点(直接和间接)依赖的。参数定义了打包后的入口文件,可以是个字符串或数组或者是对象;如果是数组,数组中的所有文件会打包生成一个filename文件;如果是对象,可以将不同的文件构建成不同的文件。

可以通过在webpack配置中配置entry属性,来指定一个入口起点(或多个入口起点)。默认败氏值为./src。

entry:{

???app:'./src/main.js'

?}

出口:webpack在哪里输出它所创建的bundles,以及如何命名这些文件,默认值为./dist。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。你可以通过在配置中指定一个output字段,来配置这些处理过程。

path:打包文察茄散件存放的绝对路径

publicPath:网站运行时的访问路径

filename:打包后的文件名

当我们在entry中定义构建多个文件时,filename可以对应的更改为[name].js用于定义不同文件构建后的名字。

output:{

???path:config.build.assetsRoot,

???filename:'[name].js',

???publicPath:process.env.NODE_ENV==='production'

??????config.build.assetsPublicPath

?????:config.dev.assetsPublicPath

?}

Loader:webpack能够去处理那些非JavaScript文件(webpack自身只理解JavaScript)。loader可以将所有类型的文件转换为webpack能够处理的有效模块,然后你就可以利用webpack的打包能力,对它们进行处理。

在webpack中JavaScript,CSS,LESS,TypeScript,JSX,CoffeeScript,图片等静态文件都是模块,不同模块的加载是通过模块加载器(webpack-loader)来统一管理的。loaders之间是可以串联的,一个加载器的输出可以作为下一个加载器的输入,最终返回到JavaScript上。

loader:loader的名称(必须)

include/exclude:手动添加必须处理的文件(文件夹)或屏蔽不需要处理的文件(文件夹)(可选);

query:为loaders提供额外的设置选项(可选)

{

???????test:/\.vue$/,

???????loader:'vue-loader',

???????options:vueLoaderConfig

?????},

?????{

???????test:/\.js$/,

???????loader:'babel-loader',

???????include:[resolve('src'),resolve('test'),resolve('node_modules/webpack-dev-server/client')]

?????}

插件:插件目的在于解决loader无法实现的其他事。插件是一个具有apply属性的JavaScript对象。apply属性会被webpackcompiler调用,并且compiler对象可在整个编译生命周期访问。

plugins:[

???newwebpack.DefinePlugin({

?????'process.env':require('../config/dev.env')

???}),

???newwebpack.HotModuleReplacementPlugin(),

??纳兆?newwebpack.NamedModulesPlugin(),//HMRshowscorrectfilenamesinconsoleonupdate.

???newwebpack.NoEmitOnErrorsPlugin(),

???//

???newHtmlWebpackPlugin({

?????filename:'index.html',

?????template:'index.html',

?????inject:true

???}),

???//copycustomstaticassets

???newCopyWebpackPlugin([

?????{

???????from:path.resolve(__dirname,'../static'),

???????to:config.dev.assetsSubDirectory,

???????ignore:['.*']

?????}

???])

?]

webpack的作用及核心配置(webpack的基本配置)

可以通过在webpack配置中配置entry属性,来指定一个入口起点(或多个入口起点)。默认败氏值为./src。entry:{ ???app:'./src/main.js'?} 出口:webpack在哪里输出它所创建的bundles,以及如何命名这些文件,默认值为./dist。基本上,整个应用程序结构,都会被编译到你指定的输出路径的文件夹中。你...

了解webpack基本配置,通过webpack配置Vue项目

Webpack基础配置与Vue项目构建Webpack是一个强大的模块打包工具,用于前端和Node.js应用的打包。它的核心配置包括安装依赖、设置入口文件(entry)和出口文件(output),以及打包模式(mode)等。安装与配置: 首先,通过npm等包管理工具安装webpack和webpack-cli。基础配置文件中,定义context(资源入口的起点...

webpack 基本配置 解析

Webpack 的基本配置主要包括六大方面,以实现高效、灵活的项目构建。首先,拆分配置是将所有配置分为三个文件:common、dev 和 prod。common 配置文件包含公共配置,dev 配置文件针对开发环境,prod 配置文件面向生产环境。通过 webpack-merge 插件,这些配置文件可以被整合。同时,使用 package.json 文件中的...

Webpack详细讲解(建议收藏)

"dev":"webpack--configwebpack.dev.js" 这个命令将不再使用默认的配置文件webpack.config.js,而是使用自定义配置文件webpack.dev.js 相当于给你的当前项目新增了一个命令:npmrundev 注意点 这个命令相当于npxwebpack--configwebpack.dev.js npxwebpack--你的配置文件:用自定义配置文件打包webpack 如果使用npm...

webpack含义、工作流程、安装及环境搭建(详细步骤)

配置模式:mode,包括development、production和none,用于指定打包目标环境,优化编译过程。Compiler:编译调度中心,记录完整环境信息,每个webpack进程只产生一个实例。关键钩子:compliation(一次构建对应一个实例)、entry(入口点,如main.js)、module(源码文件)、loader(转换器,如babel-loader)、AST(...

webpack五大核心配置?

webpack五大核心配置?Webpack3.0配置1、webpack推荐使用import()语法,不推荐使用require.ensure。只有配置chunkFilename之后,webpackChunkName才生效。2、webpack有一个默认的配置文件webpack.config.js,这个文

webpack是什么

一、基本概述 Webpack能够处理和转换各种资源文件,帮助开发者优化项目结构,提高开发效率和代码质量。它允许使用多种加载器和插件,用于执行如代码压缩、分割、热更新等任务。二、核心功能 Webpack的核心功能包括模块捆绑和代码拆分。模块捆绑允许Webpack识别并处理项目中的各个模块,将它们按照一定的规则组合...

Webpack入门,这一篇就够了

配置式Webpack为避免每次打包手动输入参数,创建webpack.config.js配置文件,使用`npm run dev`快速打包。打包结果与优化打包后产生dist文件夹和main.js,需调整引入路径。Webpack配置包括entry, output, mode, loader, plugins等。配置优化Loader处理CSS, Less/Sass, 图片和字体图标。Plugins如MiniCss...

webpack和Babel常用的基本配置

在高级配置中,可以配置多入口,实现多个页面的输出。同时,可以抽离和压缩CSS,以及抽离公共代码。webpack还可以实现异步加载JS(懒加载),处理React和Vue等框架。关于babel,它的作用是将ES6模块化语法编译为ES5,以使代码能够在旧浏览器中运行。在环境搭建和基本配置中,可以在package.json中添加必要的...

webpack基础学习(菜鸟级--我)

Webpack 是一种强大的构建工具,主要用于代码编译、集成、压缩和优化。其核心功能是将使用高级语言(如ES6)编写的代码转换成浏览器能理解的ES5语法,这个过程就叫做编译。它还能处理模块化,将不同工具的代码打包在一起。目标一:转译JavaScript 通过配置Webpack,你可以将`index.js`中的代码转换成浏览器...

webpack的作用是什么 webpack的作用和好处 webpack常用配置 webpack打包小程序作用 webpack配置 vue一定要用webpack吗 webpack有什么用 为什么用webpack webpack重要的功能
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
195/60r1588v与195/60r1588h有什么不同 许巍从出道到现在自己唱过的所有歌曲名字.不要重复的.都有哪些? ...持有至到期投资重分类为可供出售金融资产,是会计政策变更吗?为什么... 可供出售金融资产怎么核算? ...投资重分类之后两个会计年度内不得将任何金融资产重分类为持有至到期... 深圳市鸿盛通国际货运代理有限公司怎么样? 深圳市外代国际货运有限公司汕头分公司怎么样? 6个月鸭嘴杯喝奶可以吗 三星N7100怎么连接 nfc蓝牙耳机、请指教 ?最好的花茶-如何鉴别白牡丹茶品质 webpack自动打包? 记一次使用`stylus-converter`将stylus转scss的过程 一次vue-cli4项目升级到vite的经历 语文报上面有一篇:"西方哲学家黑格尔说:一个民族只有有那些关注天空的人... 手把手带你学webpack(1)--Web初体验 如何写我的外甥女作文? 梦见两个孕妇在说对方有外遇的预兆 打媳妇了,要离婚,昨天晚上我梦见我姐以前离婚的丈夫,是不是这次必须离... 吃鸡中如何在跳舞时开枪 具体怎么操作 海南旅游最好的时间 三伏天适合旅游的地方_三伏天去哪里避暑合适 中国最炎热的5个城市 北方人去海南上学习惯吗 海南热吗? pro的灭屏显示费电吗 邓寄尘&陈嘉玲&黄百呜的《理想》 歌词 AI是什么格式的文件ai是什么格式的文件手机怎么打开 消防烟感报警器多少钱一个 急求谢师宴上的家长致词,要朴实点,我父亲四十多了,不能有太多华丽的词语... 家长在谢师宴感谢老师无私付出的句子收藏四十句 细说webpack系列 3. webpack-cli 零配置打包 umi3源码解析之核心Service类初始化 为什么笔记本电脑玩游戏会卡? 钱钧人物故事 以下选项中,合法的c语言常量是 A:1.23 B:'c++' C:"\2.0 D:2kb 劳力士满天星手表价格 劳力士满天星手表价格多少钱 MySQL中文查询解决方案mysql中文无法查询 劳力士官网报价大全满天星 MySQL中text列详解格式存取限制及性能优化mysql中text列 深入探究MySQL中Text类型对性能的影响mysql中text性能 苹果手机怎么改微信号第三次 微信怎样改微信号第三次 大连元旦跨年去哪里,元旦海边旅游推荐广东 2023大连元旦跨年哪个地方好 元旦适不适合去大连跨年 2023大连元旦期间适合去哪里跨年? 您好,打扰了,请问大连跨年星海广场有倒数活动么? 美团为什么要调整配送费? 美团外卖为什么涨配送费? 这是消防报警器,哪边是进线和出现,请各位大大们多帮忙 埋弧焊时无法使用衬垫的焊缝