by Samuel Teboul

通过塞缪尔·特布尔

如何使用Angular 7配置Webpack 4:完整指南 (How to configure Webpack 4 with Angular 7: a complete guide)

The Angular CLI makes it easy to create an application that already works, right out of the box. It is a great tool, but have you never thought: "How does it work? How can I build an application without the CLI?"

Angular CLI使开箱即用就可以轻松创建已经可以运行的应用程序。 它是一个很棒的工具,但您从未想过: “它如何工作?如何在不使用CLI的情况下构建应用程序?”

Those questions came to my mind when Angular 7 was released. I started to look for answers on the web and what I found was not up-to-date for my purpose. Indeed, as Angular and webpack are always evolving, so dependencies and configurations.

当Angular 7发布时,这些问题浮现在我的脑海。 我开始在网上寻找答案,但发现并不是最新的目的。 确实,由于Angular和webpack一直在发展,因此依赖性和配置也是如此。

In this article you are about to learn:

在本文中,您将学习:

  • How to setup an Angular 7 basic application, from scratch

    如何从头开始设置Angular 7基本应用程序
  • How to configure webpack for development mode (Just-in-Time compilation)

    如何为开发模式配置Webpack(即时编译)
  • How to configure webpack for production mode (Ahead-of-Time compilation)

    如何将Webpack配置为生产模式(提前编译)

Angular 7:设置基本应用 (Angular 7: setup a basic app)

Create a new package.json file and add the following lines to install Angular and its dependencies.

创建一个新的package.json文件,并添加以下行以安装Angular及其依赖项。

"dependencies": "@angular/animations": "~7.0","@angular/common": "~7.0","@angular/compiler": "~7.0","@angular/compiler-cli": "~7.0","@angular/core": "~7.0","@angular/forms": "~7.0","@angular/http": "~7.0","@angular/platform-browser": "~7.0","@angular/platform-browser-dynamic": "~7.0","@angular/platform-server": "~7.0","@angular/router": "~7.0","@angular/upgrade": "~7.0","core-js": "~2.5","rxjs": "~6.3","zone.js": "~0.8"
}

I have struggled for a long time to find the best folder structure that fits every Angular project, especially when the application grows in size. This article has taught me a lot on the subject.

我一直在努力寻找适合每个Angular项目的最佳文件夹结构,尤其是在应用程序规模增大时。 这篇文章教会了我很多关于该主题的知识。

Create a new src folder and the following folders/files inside it. All our Angular app business logic will be in this folder.

创建一个新的src文件夹,并在其中创建以下文件夹/文件。 我们所有的Angular应用业务逻辑都将在此文件夹中。

src
|__ app|__ modules|__ menu|__ components|__ menu|__ menu.component.html|__ menu.component.scss|__ menu.component.ts|__ menu.module.ts|__ menu-routing.module.ts
|__ shared|__ components|__ home|__ home.component.html|__ home.component.scss|__ home.component.ts
|__ app.component.html|__ app.component.scss        |__ app.component.ts|__ app.module.ts|__ app-routing.module.ts
|__ index.html
|__ main.ts

Every application has at least one Angular module, the root module that you bootstrap to launch the application. By convention, it is usually called AppModule. I create another module, the MenuModule to show you how you can use lazy loading in your project, especially for production.

每个应用程序都有至少一个Angular模块,即您引导启动该应用程序的模块。 按照惯例,它通常称为AppModule 。 我创建了另一个模块MenuModule ,向您展示如何在项目中使用延迟加载,尤其是在生产中。

Some important points :

一些要点:

  • index.html

    index.html

Add <base href=”/”> tells our Angular router how to compose navigation URLs . This line means that your app will start from root folder i.e locally it would consider localhost:3000/ and on server it would consider root folder.

添加<base href=”/”>告诉我们的Angular路由器如何组成导航URL。 这行意味着您的应用将从根文件夹开始,即在本地它将考虑localhost:3000/而在服务器上将考虑根文件夹。

  • app-routing.module.ts

    app-routing.module.ts

There are three main steps to setting up a lazy loaded feature module:

设置延迟加载的功能模块的主要步骤分为三个步骤:

  1. Create the feature module

    创建功能模块
  2. Create the feature module’s routing module

    创建功能模块的路由模块
  3. Configure the routes

    配置路由

{path: ‘menu’, loadChildren:’./modules/menu/menu.module#MenuModule’} tells Angular to lazy load our feature module MenuModule by the time the user visit the /menu route.

{path: 'menu', loadChildren:'./modules/menu/menu.module#MenuModule'}告诉Angular在用户访问/menu路线时延迟加载我们的功能模块MenuModule

TypeScript配置 (TypeScript configuration)

Add the following lines to your package.json file:

package.json添加到package.json文件:

"devDependencies": {"@types/core-js": "~2.5","@types/node": "~10.12","typescript": "~3.1"
}

Create in your root project folder a tsconfig.json file:

在您的根项目文件夹中创建一个tsconfig.json文件:

{"compilerOptions": {"target": "es5","module": "commonjs","moduleResolution": "node","sourceMap": true,"emitDecoratorMetadata": true,"experimentalDecorators": true,"noImplicitAny": true,"suppressImplicitAnyIndexErrors": true,"lib": ["es6", "dom"],"typeRoots": ["node_modules/@types"]},"exclude": ["node_modules"]
}

This is a basic TypeScript configuration file. It’s essential to install node and core-js types definition. Without it, TypeScript won’t be able to compile our Angular application to JavaScript.

这是基本的TypeScript配置文件。 必须安装nodecore-js类型定义。 没有它,TypeScript将无法将Angular应用程序编译为JavaScript。

用于开发模式的Webpack配置(及时编译) (Webpack configuration for development mode (Just-in-Time compilation))

First of all, what does compilation means ? It doesn’t mean compiling TypeScript files to JavaScript, this is not related to Angular. Angular itself needs to compile your HTML templates into JavaScript and this can occurred at 2 different points of time:

首先, 编译意味着什么? 这并不意味着将TypeScript文件编译为JavaScript,这与Angular无关。 Angular本身需要将HTML模板编译为JavaScript,这可能会在2个不同的时间点发生:

  • After your app is downloaded in the Browser (JiT)

    在浏览器(JiT)中下载应用程序后
  • Right after development, at build time, before your app is downloaded in the Browser (AoT)

    在开发之后,即在构建时,在将应用程序下载到浏览器(AoT)中之前

什么是webpack? (What is webpack?)

According to Wikipedia:

根据维基百科:

Webpack is an open source JavaScript module bundler. Its main purpose is to bundle JavaScript files for usage in a browser, yet it is also capable of transforming, bundling, or packaging just about any resource or asset. Webpack takes modules with dependencies and generates static assets representing those modules. It’s a module bundler primarily for JavaScript, but it can transform front-end assets like HTML, CSS, even images if the corresponding plugins are included.
Webpack是一个开源JavaScript模块捆绑程序。 它的主要目的是捆绑JavaScript文件以供在浏览器中使用,但它也能够转换,捆绑或打包几乎任何资源或资产。 Webpack接收具有依赖性的模块,并生成代表这些模块的静态资产。 这是一个主要用于JavaScript的模块捆绑器,但如果包括相应的插件,它也可以转换HTML,CSS甚至图像之类的前端资产。

To tell webpack how to bundle our application we have to configure what we call the Core Concepts:

为了告诉webpack如何捆绑我们的应用程序,我们必须配置我们所谓的核心概念

Entry — An entry point indicates which module webpack should use to begin building out its internal dependency graph. Webpack will figure out which other modules and libraries that entry point depends on (directly and indirectly).

入口—入口点指示webpack应该使用哪个模块开始构建其内部依赖关系图 。 Webpack将找出入口点所依赖的其他模块和库(直接和间接)。

Output — The output property tells webpack where to emit the bundles it creates and how to name these files. It defaults to ./dist/main.js for the main output file and to the ./dist folder for any other generated file.

输出-输出属性告诉webpack在哪里发出它创建的包以及如何命名这些文件。 缺省为./dist/main.js主输出文件,以及到./dist任何其他生成的文件夹中。

Loaders — At a high level, loaders have two properties in your webpack configuration:

加载程序-总体而言,加载程序在Webpack配置中具有两个属性:

  • The test property identifies which file or files should be transformed.

    测试属性标识应转换的文件。
  • The use property indicates which loader should be used to do the transforming.

    use属性指示应使用哪个加载程序进行转换。

Plugins — While loaders are used to transform certain types of modules, plugins can be leveraged to perform a wider range of tasks like bundle optimization, asset management, and injection of environment variables.

插件-使用加载程序来转换某些类型的模块时,可以利用插件来执行更广泛的任务,例如包优化,资产管理和环境变量的注入。

All of these must be set up in the webpack configuration file webpack.config.js.

所有这些都必须在webpack配置文件webpack.config.js.进行设置webpack.config.js.

配置Webpack (Configuring webpack)

In the src folder we need to create 2 more files:

src文件夹中,我们需要再创建2个文件:

  • vendor.ts that only imports the application's third-party modules.

    仅导入应用程序的第三方模块的vendor.ts

  • polyfills.ts we need polyfills to run an Angular application in most browsers as explained in the Browser Support guide. This bundle file will load first so this is a good place to configure the browser environment for production or development.

    polyfills.ts我们需要polyfill在大多数浏览器中运行Angular应用程序,如浏览器支持指南中所述。 该捆绑文件将首先加载,因此这是为生产或开发配置浏览器环境的好地方。

Create a new config folder and the following files inside:

创建一个新的config文件夹,并在其中包含以下文件:

  • webpack.config.common.js : configuration that we will use for development and production.

    webpack.config.common.js :我们将用于开发和生产的配置。

Entry — For this application (and for most of them actually) we have 3 different entry points : vendor.ts polyfills.ts and main.ts.

入口-对于这种应用(和大部分其实)我们有3个不同的切入点: vendor.ts polyfills.tsmain.ts.

entry: {vendor: './src/vendor.ts',polyfills: './src/polyfills.ts',main: './src/main.ts'
}

Loaders — We load .html files with html-loader which is pretty standard. Loading .scss files is a bit tricky for an Angular app and I struggled for many hours to figure out how to do it.

html-loader -我们使用标准的html-loader加载.html文件。 对于Angular应用程序来说,加载.scss文件有点棘手,我花了好几个小时努力弄清楚该怎么做。

First of all, we must load sass files by using two loaders sass-loader and css-loader. If you want to make debugging easy, especially in development mode, it’s really important to add sourceMap: true as options. In an Angular application we add styles to component by passing a file path to styleUrls array as follow styleUrls: ["./path/styles.scss"] but we need to have style as a string and to-string-loader will do it for us and cast the output to a string.

首先,我们必须使用两个装载程序sass-loadercss-loader.来装载sass文件css-loader. 如果要sourceMap: true调试,尤其是在开发模式下,则添加sourceMap: true非常重要sourceMap: true 作为选择。 在Angular应用程序中,我们通过将文件路径传递给styleUrls数组,如下所示,将样式添加到组件中styleUrls: ["./path/styles.scss"]但是我们需要将样式作为字符串,并且to-string-loader将做到这一点对我们来说,将输出转换为字符串。

{test: /\.html$/,loader: 'html-loader'
},
{test: /\.(scss|sass)$/,use: ['to-string-loader',{ loader: 'css-loader', options: { sourceMap: true } },{ loader: 'sass-loader', options: { sourceMap: true } }],include: helpers.root('src', 'app')
}

Plugins — CleanWebpackPlugin will remove/clean your build folder(s) before building again. HtmlWebpackPlugin plugin will generate an HTML5 file for you that includes all your webpack bundles in the body using script tags. It only requires path to the template.

插件 CleanWebpackPlugin将在重新构建之前删除/清除您的构建文件夹。 HtmlWebpackPlugin插件将使用脚本标签为您生成一个HTML5文件,其中包括您体内的所有webpack捆绑包。 它只需要模板的路径。

new CleanWebpackPlugin(helpers.root('dist'),{root: helpers.root(),verbose: true}
),
new HtmlWebpackPlugin({template: 'src/index.html'
})
  • webpack.config.dev.js is our webpack configuration that we will use for development mode only.

    webpack.config.dev.js是我们的webpack配置,仅用于开发模式。

mode: "development"

In webpack 4, chosen mode tells webpack to use its built-in optimizations accordingly.

在webpack 4中,选择的模式告诉webpack相应地使用其内置优化。

devtool: 'cheap-module-eval-source-map'

This option controls if and how source maps are generated. By using cheap-module-eval-source-map Source Maps from loaders are processed for better results. However, loader Source Maps are simplified to a single mapping per line.

此选项控制是否以及如何生成源映射。 通过使用cheap-module-eval-source-map处理来自加载程序的Source Map,以获得更好的结果。 但是,加载程序源映射简化为每行一个映射。

output: {path: helpers.root('dist'),publicPath: '/',filename: '[name].bundle.js',chunkFilename: '[id].chunk.js'
}

The output key contains a set of options instructing webpack on how and where it should output your bundles, assets and anything else you bundle or load with webpack. Here we tell webpack to output our bundles to the dist folder.

output键包含一组选项,这些选项指示webpack如何以及在何处输出捆绑包,资产以及您通过webpack捆绑或加载的其他任何内容。 在这里,我们告诉webpack将包输出到dist文件夹。

optimization: {noEmitOnErrors: true
}

Skips the emitting phase whenever there are errors while compiling. This ensures that no erroring assets are emitted. The optimization key has many others options that are set by default depending on your webpack configuration mode (development/production). You can read more about it here.

编译时只要有错误就跳过发射阶段。 这样可以确保不会发出错误的资产。 optimization密钥还有许多其他选项,这些选项默认设置,具体取决于您的Webpack配置模式(开发/生产)。 您可以在此处了解更多信息。

{test: /\.ts$/,loaders: ['babel-loader',{loader: 'awesome-typescript-loader',options: {configFileName: helpers.root('tsconfig.json')}},'angular2-template-loader','angular-router-loader'],exclude: [/node_modules/]
}

angular-router-loader is a webpack loader that enables string-based module loading with the Angular Router.

angular-router-loader是一个webpack加载器,可通过Angular Router加载基于字符串的模块。

angular2-template-loader is a chain-to loader that inlines all html and styles in Angular components.

angular2-template-loader是一个链接到加载器,可以内联Angular组件中的所有html和样式。

awesome-typescript-loader is currently the faster webpack TypeScript loader. It uses dependency resolution to build modules dependency graph. This relatively speeds up the build process.

awesome-typescript-loader typescript awesome-typescript-loader当前是速度更快的webpack TypeScript加载器。 它使用依赖关系解析来构建模块依赖关系图。 这相对加快了构建过程。

babel-loader allows transpiling JavaScript files.

babel-loader允许转储JavaScript文件。

devServer: {historyApiFallback: true,stats: 'minimal'
}

When using the HTML5 History API, the index.html page will likely have to be served in place of any 404 responses. For that we need to enable historyApiFallback.

使用HTML5历史记录API时 ,可能必须提供index.html页面来代替任何404响应。 为此,我们需要启用historyApiFallback.

stats option lets you precisely control what bundle information gets displayed. This can be a nice middle ground if you want some bundle information, but not all of it.

stats选项使您可以精确控制显示哪些捆绑软件信息。 如果您需要一些捆绑软件信息,但又不是全部,这可能是很好的中间立场。

添加脚本 (Adding scripts)

Add the following lines to your package.json file:

package.json添加到package.json文件:

"scripts": {"build:dev": "webpack-dev-server --inline --hot --progress --port 8080"
}

--hot enables webpack Hot Module Replacement (HMR). It exchanges, adds, or removes modules while an application is running, without a full reload. This can significantly speed up development in a few ways:

--hot启用webpack热模块更换(HMR)。 它在应用程序运行时交换,添加或删除模块 ,而无需完全重新加载。 这可以通过以下几种方式显着加快开发速度:

  • Retain application state which is lost during a full reload.

    保留在完全重载期间丢失的应用程序状态。
  • Save valuable development time by only updating what’s changed.

    仅更新更改内容即可节省宝贵的开发时间。
  • Modifications made to CSS/JS in the source code results in an instant browser update which is almost comparable to changing styles directly in the browser’s dev tools.

    在源代码中对CSS / JS进行的修改会导致浏览器即时更新,几乎可以与直接在浏览器的dev工具中更改样式相提并论。

Now you are all setup! You can run npm run build:dev open your browser and navigate to localhost:8080.

现在,您已经完成所有设置! 您可以运行npm run build:dev打开浏览器并导航到localhost:8080.

用于生产模式的Webpack配置(提前编译) (Webpack configuration for production mode (Ahead-of-Time compilation))

AoT编译的优点 (Advantages of AoT compilation)

  • With AoT, the browser downloads a pre-compiled version of the application. The browser loads executable code so it can render the application immediately, without waiting to compile the app first.

    使用AoT,浏览器可以下载该应用程序的预编译版本。 浏览器加载可执行代码,因此它可以立即呈现应用程序,而无需等待首先编译应用程序。
  • The compiler inlines external HTML templates and CSS style sheets within the application JavaScript, eliminating separate AJAX requests for those source files.

    编译器在应用程序JavaScript中内联外部HTML模板和CSS样式表,从而消除了对那些源文件的单独AJAX请求。
  • There’s no need to download the Angular compiler if the app is already compiled. The compiler is roughly half of Angular itself, so omitting it dramatically reduces the application payload.

    如果该应用程序已经编译,则无需下载Angular编译器。 编译器大约是Angular本身的一半,因此省略编译器会大大减少应用程序的有效负载。
  • The AoT compiler detects and reports template binding errors during the build step before users can see them.

    在用户看到它们之前,AoT编译器会在构建步骤中检测并报告模板绑定错误。
  • AoT compiles HTML templates and components into JavaScript files long before they are served to the client. With no templates to read and no risky client-side HTML or JavaScript evaluation, there are fewer opportunities for injection attacks.

    AoT在将HTML模板和组件提供给客户端之前就已经将它们编译为JavaScript文件。 没有要读取的模板,没有风险的客户端HTML或JavaScript评估,注入攻击的机会就更少了。

配置Webpack (Configuring webpack)

In your config folder create a new file webpack.config.prod.js

在您的config文件夹中创建一个新文件webpack.config.prod.js

mode: 'production'

We usually proceed to AoT compilation in production mode and, as I wrote previously, in webpack 4, chosen mode tells webpack to use its built-in optimizations accordingly.

我们通常在生产模式下进行AoT编译,正如我之前写的那样,在webpack 4中,选择的模式告诉webpack相应地使用其内置优化。

output: {path: helpers.root('dist'),publicPath: '/',filename: '[hash].js',chunkFilename: '[id].[hash].chunk.js'
}

We also tell webpack to output our bundles to the dist folder. We include a hash to the file names to leverage client level cache efficiently. This way webpack knows whether or not a file has changed. Webpack provides placeholders for this purpose. These strings are used to attach specific information to outputs. The most valuable ones are:

我们还告诉webpack将我们的包输出到dist文件夹。 我们在文件名中包含哈希,以有效利用客户端级别的缓存。 Webpack通过这种方式知道文件是否已更改。 Webpack为此提供了占位符 。 这些字符串用于将特定信息附加到输出。 最有价值的是:

  • [id] returns the chunk id.

    [id]返回块ID。

  • [path] returns the file path.

    [path]返回文件路径。

  • [name] returns the file name.

    [name]返回文件名。

  • [ext] returns the extension. [ext] works for most available fields.

    [ext]返回扩展名。 [ext]适用于大多数可用字段。

  • [hash] returns the build hash. If any portion of the build changes, this changes as well.

    [hash]返回构建哈希。 如果构建的任何部分发生更改,则此更改也将更改。

  • [chunkhash] returns an entry chunk-specific hash. Each entry defined in the configuration receives a hash of its own. If any portion of the entry changes, the hash will change as well. [chunkhash] is more granular than [hash] by definition.

    [chunkhash]返回特定于条目块的哈希。 配置中定义的每个entry接收自己的哈希。 如果条目的任何部分发生更改,则哈希也将更改。 根据定义, [chunkhash][hash]更细。

  • [contenthash] returns a hash generated based on content.

    [contenthash]返回基于内容生成的哈希。

It’s preferable to use particularly hash and chunkhash only for production as hashing is not essential during development.

最好仅将hashchunkhash hash仅用于生产,因为在开发过程中哈希不是必需的。

optimization: {noEmitOnErrors: true,splitChunks: {chunks: 'all'},runtimeChunk: 'single',minimizer: [new UglifyJsPlugin({cache: true,parallel: true}),new OptimizeCSSAssetsPlugin({cssProcessor: cssnano,cssProcessorOptions: {discardComments: {removeAll: true}},canPrint: false})]
}
  • As in development mode, we want to skip the emitting phase whenever there are errors while compiling. This ensures that no erroring assets are emitted.

    与开发模式一样,我们希望在编译时出现错误时跳过发射阶段。 这样可以确保不会发出错误的资产。
  • chunks: ‘all’ indicates which chunks will be selected for optimization. Providing all can be particularly powerful, because it means that chunks can be shared even between async and non-async chunks.

    chunks: 'all'指示将选择哪些块进行优化。 提供all功能特别强大,因为这意味着即使在异步和非异步块之间也可以共享块。

  • Imported modules are initialized for each runtime chunk separately. As webpack suggests, while working on a project with multiple entry points you want to have only one runtime instance. For that you need to set it to ‘single’.

    分别为每个运行时块初始化导入的模块。 正如webpack所建议的那样,在处理具有多个入口点的项目时,您只希望有一个运行时实例。 为此,您需要将其设置为'single'

  • UglifyJsPlugin uses uglify-js to minify your JavaScript files. We set cache and parallel properties to true in order to enable file caching and to use multi-process parallel running to improve the build speed. There are more options available and I invite you to learn more about this plugin.

    UglifyJsPlugin使用UglifyJsPlugin -js来最小化您JavaScript文件。 我们将cacheparallel属性设置为true以便启用文件缓存并使用多进程并行运行来提高构建速度。 有更多可用选项,我邀请您进一步了解此插件 。

  • OptimizeCSSAssetsPlugin will search for CSS assets during the webpack build and will optimize and minimize it. The CSS processor used for optimization is cssnano. All comments will be removed from our minified CSS and no messages will be print to the console.

    OptimizeCSSAssetsPlugin将在Webpack构建期间搜索CSS资产,并将其优化和最小化。 用于优化CSS处理器是cssnano. 所有评论将从我们缩小CSS中删除,并且不会将任何消息打印到控制台。

module: {rules: [{test: /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/,loader: '@ngtools/webpack'}]
}plugins: [new ngw.AngularCompilerPlugin({tsConfigPath: helpers.root('tsconfig.aot.json'),entryModule: helpers.root('src', 'app', 'modules', 'app', 'app.module#AppModule')})
]

@ngtools/webpack is the official plugin that AoT compiles your Angular components and modules. The loader works with webpack plugin to compile your TypeScript. It’s important to include both, and to not include any other TypeScript compiler loader.

@ngtools/webpack是AoT编译Angular组件和模块的官方插件。 加载程序与webpack插件一起编译您的TypeScript。 重要的是要同时包含两者,并且不包含任何其他TypeScript编译器加载器。

添加main.aot.ts文件 (Adding main.aot.ts file)

In the src folder add main.aot.ts file:

src文件夹中添加main.aot.ts文件:

import { enableProdMode } from '@angular/core';
import { platformBrowser } from '@angular/platform-browser';import { AppModuleNgFactory } from './app/app.module.ngfactory';enableProdMode();platformBrowser().bootstrapModuleFactory(AppModuleNgFactory);

Your main entry is a bit different in production mode and AoT compilation:

您的main条目在生产模式和AoT编译中有些不同:

  • Import enableProdMode to disable Angular’s development mode, which turns off assertions and other checks within the framework.

    导入enableProdMode以禁用Angular的开发模式,该模式将关闭框架中的断言和其他检查。

  • Import platformBrowser AND NOT platformBrowserDynamic because in AoT compilation your application is shipped to the browser already compiled whereas in JiT compilation it occurs at the browser level.

    导入platformBrowser 不是 platformBrowserDynamic因为在AoT编译中,您的应用程序已交付给已经编译的浏览器,而在JiT编译中,它发生在浏览器级别。

  • Instead of importing AppModule you need to import AppModuleFactory which is your compiled application generated by our Angular compiler.

    无需导入AppModule您需要导入AppModuleFactory ,这是由Angular编译器生成的已编译应用程序。

添加脚本 (Adding scripts)

Add the following scripts to your package.json file :

将以下脚本添加到package.json文件:

"webpack-prod": "cross-env NODE_ENV=production webpack --mode production""build:prod": "npm run build:clean && ngc && npm run webpack-prod && npm run build:clean""build:clean": "del-cli 'src/**/*.js' 'src/**/*.js.map' 'src/**/*.ngsummary.json' 'src/**/*.metadata.json' 'src/**/**/*.ngfactory.ts' 'src/**/*.ngstyle.ts' 'src/**/*.shim.ts'""serve": "lite-server"
  • build:clean: the Angular compiler generates many files in order to compile your application. To stay clean in our project, we delete all these files before compilation and after generating bundles.

    build:clean :Angular编译器生成许多文件来编译您的应用程序。 为了保持项目干净,我们在编译之前和生成捆绑包后删除了所有这些文件。

  • build:prod: run the Angular compiler with ngc command and then run webpack in production mode to generate your bundles.

    build:prod :使用ngc命令运行Angular编译器,然后在生产模式下运行webpack生成捆绑包。

  • serve: I use lite-server to serve our application and see what it looks like. Of course, you won’t need it in a real world project because your app will be serve by the cloud.

    serve :我使用lite-server服务我们的应用程序,然后看它看起来像什么。 当然,在现实世界的项目中您将不需要它,因为您的应用程序将由云服务。

Now, you can run npm run build:prod to compile your Angular application and build your bundles. Then, run npm run serve to serve your app to the browser.

现在,您可以运行npm run build:prod来编译Angular应用程序并生成捆绑包。 然后,运行npm run serve将您的应用程序提供给浏览器。

I hope you enjoyed this article! If you have any questions/suggestions, let me know in the comments below.

希望您喜欢这篇文章! 如果您有任何疑问/建议,请在下面的评论中告诉我。

The project files are on my GitHub:

项目文件在我的GitHub上:

samteb/Angular-7-Webpack-4Contribute to samteb/Angular-7-Webpack-4 development by creating an account on GitHub.github.co

samteb / Angular-7-Webpack-4 通过在GitHub上创建一个帐户来为samteb / Angular-7-Webpack-4开发做出贡献。 github.co

翻译自: https://www.freecodecamp.org/news/how-to-configure-webpack-4-with-angular-7-a-complete-guide-9a23c879f471/

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

相关文章

  1. 用 Vue 改造 Bootstrap,渐进提升项目框架

    GitChat 作者&#xff1a;Meathill 原文&#xff1a;用 Vue 改造 Bootstrap&#xff0c;渐进提升项目框架 关注微信公众号&#xff1a;「GitChat 技术杂谈」 一本正经的讲技术 【不要错过文末彩蛋】 前言 Vue 横空出世&#xff0c;以迅雷不及掩耳之势横扫前端界&#xff0c…...

    2024/5/6 22:27:44
  2. 怎样才有内双算是双眼皮吗

    ...

    2024/5/7 6:23:45
  3. 微信公众账号开发框架总结

    由于公司产品战略需求&#xff0c;需要开发多个微信公众账号&#xff0c;可以选择使用IONIC作为UI框架&#xff0c;可以说它是一个很好的选择&#xff0c;符合Angular编写规范&#xff0c;但是IONIC的UI组件相对来说要少一些&#xff0c;没有侧栏、时间选择器、图片预览等组件&…...

    2024/4/21 6:12:05
  4. 双眼皮单眼皮内双好吗

    ...

    2024/4/25 9:53:32
  5. 永久双眼皮改单眼皮

    ...

    2024/4/21 6:12:03
  6. 韩式定位双眼皮图片

    ...

    2024/5/4 14:40:51
  7. angular的service与factory

    angular里的service是一个单例对象&#xff0c;在应用生命周期结束的时候&#xff08;关闭浏览器&#xff09;才会被清除。而controllers在不需要的时候就会被销毁了。 factory是angular里的一种service. Angular里面创建service最简单的方式是使用 factory() 方法。 -什么时候…...

    2024/5/4 23:59:51
  8. MNN模型转换报Don't support type [ ConvolutionDepthwise ]

    MNN模型转换Dont support type [ ConvolutionDepthwise ]问题解决方法 问题 当将caffe模型转换成mnn模型时抛如下异常 Start to Convert Other Model Format To MNN Model... [16:34:45] :143: Dont support type [ ConvolutionDepthwise ], for conv1_1/dw_new Start to Optim…...

    2024/4/21 6:12:00
  9. 一单一双眼皮的女明星

    ...

    2024/4/21 6:11:59
  10. Angular的服务介绍

    AngularJS与服务端交互 简介 在Angular框架中的内部&#xff0c;封装了许多的服务模块&#xff0c;供开发者与服务端交互时调用。如$http和 $resource等众多的服务。同时&#xff0c;应用内部的缓存机制可加速交互时的数据通信&#xff0c;通过$resource服务快速响应服务端的R…...

    2024/4/21 6:12:01
  11. Angular 服务(Services)

    为什么要使用服务 当需要向各种模块提供通用功能时使用服务。 例如&#xff0c;我们可能具有可以在各个模块之间重用的数据库功能。因此&#xff0c;您可以创建一个具有数据库功能的服务。 什么是服务 AngularJS 中的服务是一个函数或对象。 AngularJS 中你可以创建自己的…...

    2024/5/4 15:11:42
  12. Angular服务与自定义服务

    在Angular应用中&#xff1a; View视图 专门用于数据的展示和提取 Controller控制器&#xff0c;主要用于数据的挂载&#xff08;数据从哪来&#xff1f;&#xff09; 自定义服务&#xff1a;用于从后端接口获取数据&#xff0c;然后将数据挂载到控制器中 Model数据模型&am…...

    2024/5/4 1:41:37
  13. 长沙哪家双眼皮认美莱

    ...

    2024/4/20 19:11:02
  14. angularjs factory (工厂服务)

    序 angularjs的工厂服务通常用来构造一些公共数据和方法&#xff0c;它可以在任意一个控制器或指令里调用&#xff0c;从而实现数据公用。 简单用法 这是一个模拟试验用的demo&#xff0c;事实上不会这么使用。 index.html <!DOCTYPE html> <html lang"en&q…...

    2024/4/22 23:13:26
  15. angular自定义服务factory和service源码解析

    控制器膨胀 控制器是AngularJS的肉和土豆&#xff0c;一不小心就会将过多的逻辑加入其中&#xff0c;尤其是刚开始的时候。控制器永远都不应该去操作DOM&#xff0c;或是持有DOM选择器&#xff0c;那是我们需要使用指令和ng-model的地方。同样的&#xff0c;业务逻辑应该存在于…...

    2024/5/3 11:50:19
  16. Angular7入门辅助教程(八)——服务提供商

    如果有任何的非技术障碍&#xff0c;比如如何新建Angular项目&#xff0c;请先到我的"Angular7入门辅助教程"专栏参考这篇博客&#xff1a;Angular7入门辅助教程——前篇 Provider 这一章我们来了解一下Angular依赖注入系统中一个很重要的概念——服务提供商&#xf…...

    2024/5/4 10:14:04
  17. AngularJs 自定义factory服务

    自定义factory服务通过函数返回一个对象,在函数内部可以进行算式等操作然后赋值给返回的对象,value服务等提供的对象是较固定的键值对语法:app数据模型.factory(自定义factory名字,function(){var obj{};...return obj;})代码示例: <html ng-appapp ng-controllermain >…...

    2024/4/21 6:11:55
  18. 连着眼头的双眼皮图片

    ...

    2024/5/2 17:18:49
  19. 开双眼皮和埋线法

    ...

    2024/4/21 6:11:53
  20. 杭州双眼皮专职-艺星

    ...

    2024/5/2 17:06:22

最新文章

  1. 软件测试与管理:黑盒测试-等价类划分法和 边界值分析法

    知识思维导图&#xff1a; 例题1&#xff1a;日期检查功能的等价类划分 设有一个档案管理系统&#xff0c;要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月&#xff0c;并规定日期由6位数字字符组成&#xff0c;前4位表示年&#xff0c;后2位表示月。现用等…...

    2024/5/7 7:33:20
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/6 9:38:23
  3. Django实现的登录注册功能

    1 前言 在Web开发中&#xff0c;用户登录和注册是最基本且必不可少的功能。Django&#xff0c;作为一个高级的Python Web框架&#xff0c;为我们提供了强大的工具和库来快速实现这些功能。下面&#xff0c;我将详细介绍如何使用Django来实现用户登录和注册功能。 2 功能介绍 …...

    2024/5/5 8:36:26
  4. 第十一届蓝桥杯物联网试题(省赛)

    对于通信方面&#xff0c;还是终端A、B都保持接收状态&#xff0c;当要发送的数组不为空再发送数据&#xff0c;发送完后立即清除&#xff0c;接收数据的数组不为空则处理&#xff0c;处理完后立即清除&#xff0c;分工明确 继电器不亮一般可能是电压不够 将数据加空格再加\r…...

    2024/5/5 8:49:32
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/7 5:50:09
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

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

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

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

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

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

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

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

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

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

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

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

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/5/4 23:54:56
  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