前言

webpack作为现代前端技术的基石,相信绝大部分的前端开发者都听说或是在项目中使用过。但是由于现在各种各样cli工具的出现,能够掌握webpack基本配置和使用的人,可能就不那么多了。

最开始接触webpack还是在以前的angular.js项目中,之后从angular.js转到react后一直使用的create-react-app进行项目初始化。需要改动webpack配置时也是在使用eject命令暴露出webpack config进行修改,一直没有自己从零开始配置过。在这期间angular.js升级成为Angular,jQuery逐渐被历史淘汰,Vue也从一个后期之秀成为现在的当红前端框架。不得不说,前端技术的更新迭代速度真的可以用飞速来形容了。在如此快速的更新速度下,作为一个前端开发人员,一定要紧跟技术的步伐,时刻保持着学习状态,才能保证自己在大潮流中不掉队。这也是我写这篇文章的初衷,用来记录自己的学习成果。

要注意的是,本文不会赘述现代前端开发中的一些基础知识,如 npm依赖管理、模块化等基础知识。所以,若你并没有听说过webpack,或不知道它是什么,那么建议你还是先了解一下基础知识。若对webpack已经了如指掌,那么也大可不必看这篇文章。不过大佬若是愿意指导一番,我也是非常开心的!!^_^

正文

简介

webpack是什么?

本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(static module bundler)。在 webpack 处理应用程序时,它会在内部创建一个依赖图(dependency graph),用于映射到项目需要的每个模块,然后将所有这些依赖生成到一个或多个bundle。—— 来自 webpack 官方文档

简单的说,webpack就是一个现代前端开发的打包机。现代前端非常流行使用模块化的方式开发,webpack所做的就是将各个js模块合理的打包成bundle或者chunk。在打包的过程中,可以通过loader的方式,将新的js语法、CSS预处理语言等转换成更容易被浏览器支持的形式。

webpack是基于nodejs的,在绝大部分时,在使用时需要为它写一个配置文件。这个配置文件的主要结构如下:

module.exports = {mode: 'development'      // 模式配置entry: '',               // 入口文件output: {},              // 出口文件module: {},              // 处理对应模块plugins: [],             // 对应的插件devServer: {},           // 开发服务器配置(仅在开发中使用)
}
复制代码

接下来,我们就来一步步的完成这些配置。

准备

初始化和安装

在指定文件夹下执行 npm init 进行初始化。

mkdir webpackDemo&&npm init

因为项目并不是一个要发布到npm的项目,所以执行npm init后只用一路回车即可。

安装webpack和react的依赖:

npm install --save-dev webpack react react-dom

在webpack4之后的版本中,还需要安装webpack-cli,具体方法同上。

创建初始目录结构和文件

在项目根目录创建config文件夹,并在内创建webpack.config.js。

打开根目录下的package.json 配置scripts:

"scripts": {"build": "webpack --mode production --config ./config/webpack.config.js",}
复制代码

配置scripts脚本是为了后期在执行过程中只用在命令行中输入 npm '脚本中指定配置' 就能够完成命令行的输入操作。比如输入 npm build,就会自动执行 "webpack --mode production --config ./config/webpack.config.js" 这一长串的操作。

创建代码文件夹和react的入口文件:

在项目根目录中创建src文件夹,并在内创建index.js、App.js、index.css。

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css'ReactDOM.render(<App />,document.getElementById('root')
);
复制代码

App.js

import React from 'react';export default class App extends React.Component {render() {return <div><p className="text">动手搭建一个基于webpack4的react开发环境</p></div>}
}
复制代码

index.css

.text{color:'red'
}
复制代码

完成上述操作后,项目目录结构应该像下面这样

webpackDemo
│   node_modules
└───config│   webpack.config.js
└───src│   index.js│   index.css│   App.jspackage.json
复制代码

现在,我们完成了简单的初始化工作,下面开始了解webpack吧。

模式 (mode)

mode是webpack4中新增的概念,它有三个选项:developmentproductionnone,用来设置webpack的优化方式。

development

开发模式,该模式优化了开发速度,提供了详细的错误机制和浏览器调试工具。并且关闭了代码压缩,使代码能够更快的构建。

production

生产模式,该模式能够提供更小的代码包,去除了只在开发阶段运行的代码。自动开启了代码混淆压缩。

配置

module.export = {mode:'production' // 'development'||'production'||'none'
}
复制代码

程序入口 (entry)

在这里,可以声明一个应用的起点。入口可以有一个或者多个。在单页应用中,入口一般只有一个。不过也可以将公共依赖配置成为单页应用的入口,这样单页应用也可以有多个入口。而在多页应用中,一般会有多个入口文件。

一个简单的单页应用入口如下:


module.export = {mode:'production' // 'development'||'production'||'none',entry:'./src/index.js',
}复制代码

输出 (output)

output用来配置项目打包后的文件名称、路径。用来告诉webpack怎么输出、输出到哪、叫什么名字。

const path = require('path');module.export = {mode:'production' // 'development'||'production'||'none',entry:'./src/index.js',output: {// 在bundle中引入注释 注意:该选项不应该在生产模式中启用pathinfo:true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "[name].[hash].js"}
}
复制代码

这里的filename并没有给它一个实际的名称,而是使用模板字符串去设置webpack生成后的文件名称。这个设置中的[name]代表模块名称,在单入口文件中默认为main。而[hash]则会生成一个模块标识符的hash,默认是20位,可以通过[hash:16]的方式指定它的位数。打包后的文件名称就像这样main.f236aaeca342dfb1f8dd.js。在生成文件名称后跟上hash有助于我们在项目重新部署后由于引用的文件名称变了,浏览器会去下载新的文件,不再继续使用本地的缓存。

loader

webpack的作用就是将前端开发中的各个模块进行处理以及打包。而loader的作用就是处理webpack中的这些模块。

webpack中模块有很多种,常见的有:

  • 模块化的js文件

  • css/less/sass文件

  • 图片以及静态文件

loader在module中配置:

// 示例
const path = require('path');const appSrc = path.resolve(__dirname, '../src')module.exports =  {mode: 'development',// 入口entry: './src/index.js',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,     // 用来指定针对的文件类型 支持正则exclude: /node_modules/, // 用来指定需要排除的文件夹,优化打包速度include: appSrc,         // 指定所包含的文件夹 ,优化打包速度loader: "babel-loader", // 针对指定文件使用的loader}]}
};复制代码

要对这些模块进行处理,就要使用到不同的loader。在此之前,先简单的介绍一下需要使用到的loader。

babel-loader

babel是一个语法转换器,能够让你自由的使用JavaScript的最新语法。它能够将我们所写的新语法、jsx等转换成浏览器能够友好支持的形式。

要使用babel-loader需要下列依赖,可以通过执行npm install --save-dev babel-loader @babel/core @babel/preset-react @babel/preset-env安装它们。

  • babel-loader

  • @babel/core

    babel的核心组件,里面包含着babel的api。

  • @babel/preset-env

    用来转义JavaScript语法。

  • @babel/preset-react

    用来转义react。

配置babel-loader:

const path = require('path');const appSrc = path.resolve(__dirname, '../src')module.exports =  {mode: 'development',// 入口entry: './src/index.js',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,exclude: /node_modules/,include: appSrc,loader: "babel-loader",options: {// 指定babel预处理转义presets: ["@babel/preset-env", "@babel/preset-react"]}}]}
}
复制代码

完成上述配置后,还需配置一下babel,让它能够转换react和js的新语法。可以像上面使用webpack配置中的option选项中的presets字段指定babel预处理的方式。

也可以在项目的根目录创建babel的配置文件.babelrc.babelrc后缀rc来自linux中,使用过linux就知道linux中很多rc结尾的文件,比如.bashrc,rc是run command的缩写,翻译成中文就是运行时的命令,表示程序执行时就会来调用这个文件。

babel所有的操作基本都会来读取这个配置文件,除了一些在回调函数中设置options参数的,如果没有这个配置文件,会从package.json文件的babel属性中读取配置。

.babelrc中添加下列语句:

{"presets": ["@babel/preset-env","@babel/preset-react"]
}
复制代码

url-loader

url-loader和file-loader的作用类似,都是使webpack能够打包静态文件。url-loader相较于file-loader的功能更强大,它能够使用两种方式进行打包。

url-loader有一个重要的参数 limit ,这个参数用来设置打包文件大小的限制。当文件小于指定参数时,它能够返回一个DataURL(base64)形势的文件。当文件大于指定参数时,它将通过file-loader进行打包。

配置url-loader:

const path = require('path');const appSrc = path.resolve(__dirname, '../src')module.exports =  {mode: 'development',// 入口entry: './src/index.js',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,exclude: /node_modules/,include: appSrc,loader: "babel-loader",options: {// 指定babel预处理转义presets: ["@babel/preset-env", "@babel/preset-react"]}},// url-loader的配置{test: /\.(png|jpg|gif)$/,loader: "url-loader",options: {// 设置url-loader转DataURL的文件大小上限limit: 10000}}]}
}
复制代码

url-loader还有两个参数mimetypefallback,这两个参数使用的并不多,就不在这里赘述了。

style-loader和css-loader

style-loader和css-loader都是用来处理css文件的,不过它们的作用并不相同。

css-loader:用来读取css文件的内容,并进行处理 如:minimize。

style-loader:将通过import形式导入到js中的css文件插入到<style></style>标签内。

在webpack中的配置如下:

const path = require('path');const appSrc = path.resolve(__dirname, '../src')module.exports =  {mode: 'development',// 入口entry: './src/index.js',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,exclude: /node_modules/,include: appSrc,loader: "babel-loader",options: {// 指定babel预处理转义presets: ["@babel/preset-env", "@babel/preset-react"]}},{test: /\.(png|jpg|gif)$/,loader: "url-loader",options: {// 设置url-loader转DataURL的文件大小上限limit: 10000}},// 针对css文件配置style-loader和css-loader{test: /\.css$/,include: appSrc,use: ['style-loader',{loader: 'css-loader',options: {// 可以包含一些配置modules:true|false, // 是否开启css模块化,开启后引入的css文件仅针对当前页面有效,不会作用到全局minimize: true // 开发模式下应该设为false,优化打包速度}}]}]}
}
复制代码

如上所示,当我们在针对同一类型的文件配置多个loader时。可以将loader声明在一个数组内,数组项可以是一个对象,也可以仅仅是一个字符串,这取决于你针对某个loader还有没有特殊的设置。比如在配置css-loader时,还声明了option选项,并在option选项内开启了minimize选项。但是在配置style-loader时,仅仅写了一个字符串。

需要注意的是,数组内loader的执行顺序是从数组的最后一项依次向前执行。所有我们将css-loader配置在了后面,它是先执行的。这更符合处理逻辑,先对css进行处理,再插入到html中。

插件

插件是webpack的一个极其重要的功能,webpack提供了丰富的插件接口,使开发者能够自由的开发插件来拓展webpack的功能。

这里我们拿大名鼎鼎的 HtmlWebpackPlugin 来举例。

设想一个场景,在打包时,需要手动的去创建一个html文件,然后在其中引入打包好的各种文件。即使创建好html文件后,由于在config中设置了hash形式的打包文件名称。我们在每次打包后还需要根据hash名称的变动去改变html内引入的文件名称,这是非常低级的重复劳作。

HtmlWebpackPlugin 为我们解决了这个问题。HtmlWebpackPlugin 能够根据我们提供的模板自动生成html文件,并引入打包后的内容。

下面介绍一下HtmlWebpackPlugin的使用过程。

安装:npm install --save-dev html-webpack-plugin

安装完成后,先在项目的根目录创建一个文件夹public,在其中创建一个模板文件index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><title>Document</title>
</head>
<body><div id="root"></div>
</body>
</html>
复制代码

然后在webpack中配置插件:

const path = require('path');const appSrc = path.resolve(__dirname, '../src')
// 引入html-webpack-plugin插件
const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports =  {mode: 'development',// 入口entry: './src/index.js',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,exclude: /node_modules/,include: appSrc,loader: "babel-loader",options: {// 指定babel预处理转义presets: ["@babel/preset-env", "@babel/preset-react"]}},{test: /\.(png|jpg|gif)$/,loader: "url-loader",options: {// 设置url-loader转DataURL的文件大小上限limit: 10000}},// 针对css文件配置style-loader和css-loader{test: /\.css$/,include: appSrc,use: ['style-loader',{loader: 'css-loader',options: {// 可以包含一些配置minimize: true // 开发模式下应该设为false,优化打包速度}}]}]},plugins: [// HTML模板文件处理插件new HtmlWebpackPlugin({file: 'index.html', // 生成的文件名称template: 'public/index.html' // 指定模板文件})],
}
复制代码

现在在命令行中执行npm build,webpack将打包src目录内的文件。并将在根目录生成一个build文件,将打包的内容输出在里面。

这时候,我们其实已经完成了webpack的基本配置。但是现在的配置是基于development模式进行打包的,没有进行压缩,很显然这并不能做为一个可发布的版本。要修改为生产模式其实也很简单,可以通过两种方式去实现。

  1. 修改配置文件中的mode选项,将development修改为production。

  2. 删除配置中的mode选项,修改package.json scripts中的build项为 webpack --mode production --config ./config/webpack.config.js

在配置2中,使用--mode 能够为webpack-cli设置打包模式。修改后再次打包,这时候代码经过webpack production模式的优化,进行了混淆压缩,变成了发布版本。

devServer

在日常的开发过程中,肯定不能每修改一点东西就重新build一次,这样开发效率会受到很大的影响。这时需要启动一个服务,来监听文件的变动。当文件保存时就重新打包,同时帮我们自动刷新浏览器,方便我们及时观察到更新。

要完成上述操作有几种方式,这里只介绍其中的一种,使用 webpack-dev-server 插件。

执行 npm install --save-dev webpack-dev-server 安装插件,在module.explot中添加配置项 devServer

devServer的配置项有很多,这里大概的介绍其中几种常用的配置:

  • contentBase: '',告诉服务器从哪个目录中提供内容

  • https: true|false, 是否启用https

  • compress: true|false, 是否启用压缩

  • host: '127.0.0.1', 指定host地址

  • port: 23333, 指定端口

  • overlay: true|false, 当出现编译器错误或警告时,在浏览器中显示全屏覆盖层。

  • progress: true|false, 将运行进度输出到控制台。

将devServer添加到配置中:

const path = require('path');const appSrc = path.resolve(__dirname, '../src')
// 引入html-webpack-plugin插件
const HtmlWebpackPlugin = require('html-webpack-plugin');module.exports =  {// 入口entry: './src/index.js',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,exclude: /node_modules/,include: appSrc,loader: "babel-loader",options: {// 指定babel预处理转义presets: ["@babel/preset-env", "@babel/preset-react"]}},{test: /\.(png|jpg|gif)$/,loader: "url-loader",options: {// 设置url-loader转DataURL的文件大小上限limit: 10000}},// 针对css文件配置style-loader和css-loader{test: /\.css$/,include: appSrc,use: ['style-loader',{loader: 'css-loader',options: {// 可以包含一些配置minimize: true // 开发模式下应该设为false,优化打包速度}}]}]},devServer: {// HOSThost: '127.0.0.1',// 端口port: 23333,// 报错提示在网页遮罩层overlay: true,// 显示运行进度progress: true,},plugins: [// HTML模板文件处理插件new HtmlWebpackPlugin({file: 'index.html', // 生成的文件名称template: 'public/index.html' // 指定模板文件})]
}
复制代码

需要注意的时,devServer应当用在开发环境中,所以现在需要将之前的配置进行修改。

  1. 在配置中删除mode项。

  2. 为package.json的scripts中添加另一个启动命令 "start": "webpack-dev-server --open --mode development --config ./config/webpack.config.js"

  3. 将之前的build项改为 webpack --mode production --config ./config/webpack.config.js

现在,执行npm build,webpack将使用production模式进行打包。执行npm start时,将使用development模式进行打包,并且webpack-dev-server将启动一个服务,监听文件变更。

现在执行npm start,就可以开始进行开发了!

进阶

在上面的配置中,我们已经实现了一个react项目开发环境的基本配置。但这远远不够,在实际的项目中,可能会用到很多的工具来优化开发速度。同时也需要针对不同的环境写不同的配置,做不同的优化等。并且,可能还涉及到代码分割、压缩等配置。

下面,我们来一步步完善webpack的配置。

devtool

webpack中devtool选项用来控制是否生成,以及如何生成 source map。

想要了解source map,可以看一下这篇文章。简单的说,source map就是帮助我们定位到错误信息位置的文件。正确的配置source map,能够提高开发效率,更快的定位到错误位置。

webpack中devtool有很多种配置,我们可以在 这里 了解它。

在开发环境中,更推荐使用cheap-module-eval-source-map,它能帮助我们准确的定位到错误源代码位置的同时,也能提供更快的构建速度和构建性能。

而在生产环境中,可以不启动任何source map(不配置devtool项),也可以使用source-map。需要注意的是,不要将source map部署到生产服务器中。

为svg文件配置loader

一般情况下,项目都会需要用到图标。常见的图标使用方式有很多种,如雪碧图、字体图标、svg等。雪碧图和iconfont的使用方式不需要进行特殊的处理,这里我们就不再赘述。下面介绍一个使用svg图标的方法。

通过 svgr ,能够直接将svg图标以react组件的形式引入项目中。

就像这样:

import React from 'react';
import { ReactComponent as Icon } from './icon.svg';export default class App extends React.Component {render() {return <div><Icon width={10} height={10} /></div>}
}
复制代码

在react最新版本的cli create-react-app,已近默认集成了svgr。在我们自己的项目中使用也很简单,只需要针对 .svg添加loader即可。

{test: /\.svg$/,use: ['@svgr/webpack'],
}
复制代码

svgr同时也支持node、react-native等处理方式,可以通过 svgr文档来了解。

构建不同环境下的配置

在生产环境和开发环境的构建目标差异很大。比如在开发环境中,需要更快的构建速度和更强的错误提示。但是在生产环境中,则希望构建的代码能更小,更轻,更侧重于性能。所以,针对不同的环境,需要不同的配置文件。但是如果将配置完全拆分开,两个配置文件中可能会包含很多重复的代码。这时我们需要提出公共的配置,为了将这些配置合并在一起,可以使用webpack-merge。

下面,我们开始使用 webpack-merge 进行配置优化。

首先,使用npm安装依赖 npm install --save-dev webpack-merge

然后,在config文件夹下创建 webpack.config.common.js 、 webpack.config.dev.js 、webpack.config.prod.js。顾名思义,这三个配置代表了通用、开发、生产模式的配置文件。

将之前配置中用到的公共配置提出到 webpack.config.common.js 内:

// webpack.config.common.js// 打包HTML文件
const HtmlWebpackPlugin = require('html-webpack-plugin');
const path = require('path');
const appSrc = path.resolve(__dirname, '../src')module.exports = {// 入口entry: './src/index.js',module: {rules: [{// 配置svg图标loader,可以在项目中通过组件的形式直接引入svg图标test: /\.svg$/,include: appSrc,use: ['@svgr/webpack']}]},plugins: [// HTML模板文件处理插件new HtmlWebpackPlugin({file: 'index.html',template: 'public/index.html'})]
}复制代码

开发环境下的配置:

const merge = require('webpack-merge');
// 引入公共配置文件
const common = require('./webpack.config.common.js');
const path = require('path');const appSrc = path.resolve(__dirname, '../src')module.exports = merge(common, {mode: 'development',devtool: 'cheap-module-eval-source-map',// 出口output: {pathinfo: true,// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)// chunk名称配置chunkFilename: '[name].chunk.js',// 输出的文件名配置filename: "bundle.js"},module: {rules: [{test: /\.(js|jsx)$/,// exclude: /node_modules/,include: appSrc,loader: "babel-loader",options: {presets: ["@babel/preset-env", "@babel/preset-react"]}},// 针对静态文件{test: /\.(png|jpg|gif)$/,loader: "url-loader",options: {limit: 8192,name: 'static/[name].[hash:8].[ext]',}},{test: /\.css$/,use: [MiniCssExtractPlugin.loader,{loader: 'css-loader',options: {minimize: false}}]}]},devServer: {// HOSThost: '127.0.0.1',// 端口port: 23333,// 报错提示在网页遮罩层overlay: true,// 显示运行进度progress: true,}
})复制代码

生产环境配置文件:

const path = require('path');
const merge = require('webpack-merge');
const common = require('./webpack.config.common.js');
// 每次执行打包 先清除之前的打包文件
const CleanWebpackPlugin = require('clean-webpack-plugin');const appSrc = path.resolve(__dirname,'../src')module.exports = merge(common, {mode: 'production',// 出口output: {pathinfo: false,chunkFilename: 'js/[name].chunk.js',// 所有输出文件的目标路径// 必须是绝对路径(使用 Node.js 的 path 模块)path: path.resolve(__dirname, './../build'),filename: "js/[name].[chunkhash:8].js"},module: {rules: [{test: /\.(js|jsx)$/,include: appSrc,// exclude: /node_modules/,loader: "babel-loader",options: {presets: ["@babel/preset-env", "@babel/preset-react"]}},// 针对静态文件{test: /\.(png|jpg|gif)$/,loader: "url-loader",options: {limit: 10000,name: 'static/[name].[hash:8].[ext]',}},{test: /\.css$/,use: [MiniCssExtractPlugin.loader,{loader: 'css-loader',options: {minimize: true}}]}]},plugins: [// 打包前清除之前的build目录new CleanWebpackPlugin(['build'], path.resolve(__dirname, '../'))]
});
复制代码

现在配置已经修改完成,我们还需要修改一下package.json,让启动命令去引用不同的配置文件。

将开发模式的启动配置修改为 "start": "webpack-dev-server --open --mode development --config ./config/webpack.config.dev.js"

生产模式的启动配置修改为 "build": "webpack --mode production --config ./config/webpack.config.prod.js",

现在我们使用npm start命令启动项目,运行的是webpack.config.dev.js文件,这是开发配置文件,我们可以在里面做一些针对开发模式的优化。

使用npm build命令启动项目,运行的是webpack.config.prod.js文件,这是生产配置文件,我们可以在里面做一些针对生产模式的优化。

防止打包文件的重复

执行build命令打包文件时,会在项目的根目录下生成build目录,并在其中生成打包文件。当执行多次build后,会发现由于项目名称的hash值不同,build目录下可能存在多个版本打包后的文件。要解决这个问题,可以使用插件 clean-webpack-plugin

首先安装插件 npm i clean-webpack-plugin --save-dev

配置如下:

const CleanWebpackPlugin = require('clean-webpack-plugin')// webpack config
{plugins: [new CleanWebpackPlugin(['build'], path.resolve(__dirname, '../'))]
}
复制代码

配置完插件后,再执行npm build命令。会发现每次打包前,build目录都会被删除,然后重新创建。

注意,该插件只用于生产环境配置。

总结

到这里,我们实现了webpack的基础的配置,以及各种概念的扫盲。其实这只能算是基础用法,要实现一个真正完善的webpack配置肯定远远不止这些。这篇文章的面向对象为初学者,所有在这里就不过多的介绍那些比较复杂的概念。

在掌握了上述基础配置后,大家可以尝试着进行一些更深入的学习,如optimization、tree shaking、生产环境下的构建速度优化等。

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 全栈Web开发-完整路线图

    学习网络开发对于创始人而言是一个巨大的优势,即使了解基础知识也将非常有用。 这篇文章将为您提供一个概述,概述您需要学习的所有内容,入门指南以及可以用来快速学习的最佳资源的集合。 我将告诉您专业的全栈Web开发人员需要了解的所有内容,但是如果您仅想了解基础知识,…...

    2024/4/15 3:51:38
  2. Nodejs系列课程,从入门到进阶帮你打通全栈

    本课程由社区博主:Scott 编写 本文通过提供给大家学习的方法,以及我个人录制的一系列视频,帮助你更快更好的学习 Nodejs,了解前后端的 HTTP 知识,以及配置和使用阿里云 ECS 来部署你的 Nodejs 项目,成为那个具有争议的全栈开发工程师。 要不要学习 Nodejs 如果你是前端开…...

    2024/4/20 17:02:30
  3. Solidity教程:初学Solidity

    这篇关于Solidity教程的博客展示了很多Solidity特性。本教程假定你对以太坊虚拟机和编程有一定的了解。 以太坊,“世界计算机”提供了一个非常强大的全球共享基础设施,使用名为Solidity的编程语言构建去中心化应用程序。 让我们开始我们的Solidity教程,介绍Solidity。 什么是…...

    2024/4/15 3:51:36
  4. web前端开发这门技术的由来,入门必读

    按1990年,第一个Web浏览器诞生,而WWW的诞生直接拉开前端史的序幕。 从静态页面到JavaScript,从依赖后端到自主开发,前端开发者从不被重视的“页面仔”逆袭为如今很多前端工程师的薪资比后端还高,从前端技术由国外开发者主导到如今国内自主产生的小程序技术,我们走了近 30…...

    2024/4/18 12:36:55
  5. HTML+CSS+JS+Bootstrap+XML

    前端 一、Web概念 1、JavaWeb:概念:使用Java语言开发基于互联网的项目 2、软件构架 ​ 1.C/S:Client/Server 客户端/服务器端 ​ 优点:用户体验好 ​ 缺点:开发、安装,部署,维护 麻烦 ​ 2. B/S: Browser/Server 浏览器/服务器端 ​ 优点:开发、安装,部…...

    2024/4/15 3:51:34
  6. 学习记录-微信小程序

    文章目录一、设计要素1.五大要点2.小程序集群搭建的六种方法二、概述1.诞生背景2.什么是小程序3.小程序能做什么4.小程序开发工作准备5.开发者工具下载6.开发者工具1)详情2)调试器7.官方开发文档8.小程序代码构成小程序配置文件介绍(.json)三、小程序框架与运行机制1.MINA框架1…...

    2024/4/24 13:35:56
  7. 国外前端开发大神经验:目标越明确,计划就越专业【全新web前端开发视频教程】

    你想成为一名Web开发人员,但现在你面前有这样一个问题,那就是你没有在高科技行业工作的经验。你上了一些课程,也花了时间在个人编码项目上,但是你的简历上关于“经验”的部分仍然不为企业承认。过渡到一个新的领域从来就不是一件简单的事。你不知道你是否准备好了,不知道是…...

    2024/4/24 13:35:55
  8. Webpack 快速上手(下)

    作者 | 朱士奇 杏仁前端开发工程师,代码洁癖症早期,关注前端技术。由于文章篇幅较长,为了更好的阅读体验,本文分为上、中、下三篇:上篇介绍了什么是 webpack,为什么需要 webpack,webpack 的文件输入和输出中篇介绍了 webpack 在输入和输出这段中间所做的事情,也就是…...

    2024/4/24 13:35:54
  9. DOM(文档对象模型)

    1、节点层次 Node类型 DOM1 级定义了一个 Node 接口,该接口将由 DOM 中的所有节点类型实现,JavaScript 中的所有节点类型都继承自 Node 类型,因此所有节点类型都共享着相同的基本属性和方法 每个节点都有一个 nodeType 属性,用于表明节点的类型。节点类型由在 Node 类型中定…...

    2024/4/24 13:35:53
  10. JS基础 | JavaScript 极简史

    0. 前言Cocos Creator 游戏引擎可使用 JavaScript、TypeScript 编程语言为游戏提供组件脚本代码,开发出的游戏可运行在电脑浏览器、移动浏览器、桌面应用、移动APP、微信等众多平台之上。Shawn 计划从零开始,以 JavaScript 编程语言为起点,面向青少年学生或对游戏开发感兴趣…...

    2024/4/24 13:35:52
  11. 从零开始的Webpack4教程

    1、了解Webpack相关 什么是webpack Webpack是一个模块打包器(bundler)。 在Webpack看来, 前端的所有资源文件(js/json/css/img/less/...)都会作为模块处理 它将根据模块的依赖关系进行静态分析,生成对应的静态资源五个核心概念 Entry:入口起点(entry point)指示 webpack 应该…...

    2024/4/24 13:35:58
  12. webpack-react 之 webpack 篇(上)

    构建一个小项目——FlyBird,学习webpack和react。 (本文成文于2017/2/25) 从webpack开始 本篇从零开始,详细记录webpack的各个方面。 文章中将会放入很多链接以便扩展,我也会归纳总结,不读扩展不会影响到对本文的理解,但是有时间还是看看吧。 声明: 在阅读本文列出的链…...

    2024/4/24 13:35:50
  13. JS小白教程

    P01 JavaScript概述JavaScript是什么?JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言。 直译式:直接解释执行,代码不进行预编译。 脚本:凡是不能独立执行需要依赖其他程序的,通常都叫做脚本。JS引入方式标签内引入:直接写在标签内(不推荐) &…...

    2024/4/24 13:35:49
  14. 手把手从0打造电商平台前端

    第一章 课程介绍与开发前的准备工作1.1课程目标掌握一个电商网站从设计到上线的整个过程所涉及的流程具备独立开发一个前端项目的能力让你一开始就比别人起点更高,获得更快速的成长掌握开发过程中各种坑的解决思路和方法架构设计前后端完全分离分层架构模块化技术选型HTML css …...

    2024/4/24 13:35:48
  15. 十步零基础JavaScript学习路径

    之前写过一篇26天学通前端开发,内容主要讲的就是前端学习路径,今天再来写一篇零基础的JavaScript学习路径,希望能帮编程零基础的前端爱好者指明方向。 一、开发环境和JavaScript版本问题 开发环境越简单越好,一定不要在这个环节浪费时间。 首先说编辑器的选择,sublime tex…...

    2024/4/24 13:35:47
  16. Webpack系列-第一篇基础杂记

    前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然只是一个工具,但内部涉及到非常多的知识,之前一直靠CV来解决问题,之知其然不知其所以然,希望这次能整理一下相关的知识点。 简介 这是webpack官方的首页图本质上,webpack 是一个现代 JavaScript 应用程序…...

    2024/4/24 13:35:46
  17. Webpack4从零搭建React开发环境

    实践文:参考vue-cli配置及网上react相关文章,选用webpack4从零搭建react开发环境。 github项目地址 1、npm init初始化项目npm -v可以查看npm版本,我安装的最新版5.5.1 初始化项目后将生成一个package.json文件,如图:2、安装依赖 安装开发环境依赖:npm install --save-de…...

    2024/4/24 13:35:48
  18. 一天掌握物联网全栈开发之道 | 附 PPT 下载

    万物互联时代,随着国外的谷歌、微软,国内的阿里、华为、百度等诸多行业巨头纷纷入局,物联网迎来的新的浪潮,将更多的商机及机遇呈现出来,无数创业者及开发者纷至沓来,希望从中可分一杯羹。然而在庞大的物联体系之下,云计算、大数据、人工智能、传感技术、安全问题无一不…...

    2024/4/18 13:00:58
  19. webpack 从开始到结束

    教你从零开始写一个简单的webpack打包配置 这篇文章的全部代码已经上传到github。有需要的童鞋可以去看看。github.com/Link-X/webp… 先简单看一下我们这个教程最终的文件结构 主要就是这个webpack.config.prod.js 和 webpack.config.js。这两是全部的webpack配置 正文开始---…...

    2024/4/15 3:51:48
  20. Echarts数据可视化全解注释

    全栈工程师开发手册 (作者:栾鹏)github地址:https://github.com/626626cdllp/echarts Echarts数据可视化开发代码注释全解Echarts数据可视化开发参数配置全解 6大公共组件详解(点击进入):title详解、 tooltip详解、toolbox详解、legend详解、dataZoom详解、visualMap全解…...

    2024/4/16 5:21:31

最新文章

  1. JDO还有人用吗

    JDO&#xff08;Java Data Objects&#xff09;是一种用于将Java对象映射到数据库的持久化技术&#xff0c;它提供了一种简单的方式来管理持久化数据。然而&#xff0c;随着时间的推移&#xff0c;JDO逐渐被其他持久化技术如JPA&#xff08;Java Persistence API&#xff09;所…...

    2024/5/2 8:01:48
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. java的gradle,maven工程中使用selenium

    一、下载selenium库 &#xff08;1&#xff09;gradle工程 工程中会有一个build.gradle.kts的文件&#xff0c;这个文件可以定制 Gradle 的行为 在文件中添加下面代码&#xff0c;然后sync // implementation ("org.seleniumhq.selenium:selenium-java:4.19.1") …...

    2024/4/29 19:33:34
  4. JVM学习笔记

    文章目录 一、内存模型1. 程序计数器2. 栈3. 本地方法栈4. 堆5. 方法区方法区位置字符串常量池位置 6. 直接内存 二、虚拟机参数设置三、类的生命周期1. 加载2. 连接1&#xff09;验证2&#xff09;准备3&#xff09;解析 3. 初始化4. 卸载 四、类加载器1. 启动类加载器2. 扩展…...

    2024/5/1 13:33:02
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/30 18:14:14
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/30 18:21:48
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/27 17:58:04
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/28 1:34:08
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/30 9:43:22
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/30 9:42:49
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57