前端性能优化篇之webpack如何提⾼的打包速度、如何减少打包体积、如何⽤来优化前端性能、如何提⾼构建速度?

目录

  • 如何提⾼webpack的打包速度?
    • 1. 使用最新版本的Webpack和相关插件:
    • 2. 合理配置Loader:
    • 3. 使用HappyPack或thread-loader:
    • 4. 使用DllPlugin预编译依赖模块:
    • 5. 使用Tree Shaking:
    • 6. 使用缓存:
    • 7. Code Splitting:
    • 8. 压缩输出:
    • 9. 其他
  • 如何减少 Webpack 打包体积
    • 1. 代码压缩
    • 2. Tree Shaking
    • 3. 按需加载
    • 4. 图片压缩
    • 5. 移除无用代码
    • 6. 优化配置
    • 7. 使用CDN
    • 项目需求
    • 总结
  • 如何⽤webpack来优化前端性能?
    • 用Webpack优化前端性能
    • 压缩代码
    • 利用CDN加速
    • Tree Shaking
    • Code Splitting
    • 提取公共第三方库
    • 项目需求
    • 总结
  • 如何提⾼webpack的构建速度?
    • 1. 使用最新版本的Webpack
    • 2. 精心选择Loader和Plugin
    • 3. 使用HappyPack
    • 4. 缩小文件搜索范围
    • 5. 使用DllPlugin预编译资源模块
    • 6. 开启持久化缓存
    • 7. Tree Shaking
    • 8. 使用多进程/多实例构建工具
    • 9. 减少监视文件
    • 10. 持续优化和调整配置


如何提⾼webpack的打包速度?

1. 使用最新版本的Webpack和相关插件:

确保你正在使用最新版本的Webpack和相关插件,因为它们通常会包含性能改进。

2. 合理配置Loader:

避免不必要的文件处理,只对需要的文件使用相应的Loader,并尽量精简Loader链。

首先,我们可以通过配置Loader的文件搜索范围来提高效率。比如,对于Babel Loader,我们希望它只作用在JS代码上,因此我们可以使用includeexclude属性来指定需要处理的文件夹和不需要处理的文件夹,避免不必要的文件处理。

module.exports = {module: {rules: [{// 只对js文件使用babel-loadertest: /\.js$/,loader: 'babel-loader',// 只在src文件夹下查找include: [resolve('src')],// 不会去查找的路径exclude: /node_modules/}]}
}

另外,为了加快打包时间,我们可以将Babel编译过的文件缓存起来,这样下次只需要编译更改过的代码文件即可。你可以通过设置cacheDirectory选项为true来实现这一点。

loader: 'babel-loader?cacheDirectory=true'

通过以上方式,我们可以优化Loader的配置,避免不必要的文件处理,只对需要的文件使用相应的Loader,并尽量精简Loader链,从而提高Webpack的打包效率。

3. 使用HappyPack或thread-loader:

这些工具可以将任务分发给多个子进程,以充分利用多核处理器的优势,加快构建速度。

当使用Webpack进行打包时,由于Node是单线程运行的,因此在执行Loader时可能会出现长时间编译任务导致等待的情况。为了充分利用系统资源加快打包效率,可以使用HappyPack工具将Loader的同步执行转换为并行执行。

首先,需要对Webpack配置进行调整,指定需要使用HappyPack的Loader,同时设置相应的ID以及线程数量。比如,对于Babel Loader的配置,可以这样进行设置:

module: {rules: [{test: /\.js$/,include: [resolve('src')],exclude: /node_modules/,// 使用HappyPack的loaderloader: 'happypack/loader?id=happybabel'}]
},
plugins: [new HappyPack({id: 'happybabel',loaders: ['babel-loader?cacheDirectory'],// 开启 4 个线程threads: 4})
]

通过这样的配置,HappyPack可以将任务分发给多个子进程,充分利用多核处理器的优势,从而加快构建速度,提高Webpack的打包效率。

4. 使用DllPlugin预编译依赖模块:

将第三方库单独打包,避免每次构建都重新编译这些模块。

当使用DllPlugin预编译依赖模块时,我们可以将第三方库单独打包,从而避免每次构建都重新编译这些模块。这种方式能大大减少打包类库的次数,只有在类库更新版本时才需要重新打包,并且还能实现将公共代码抽离成单独文件的优化方案。

首先,我们需要在一个单独的文件中配置DllPlugin,比如命名为webpack.dll.conf.js。在这个文件中,我们指定需要统一打包的类库,然后使用DllPlugin进行配置,示例代码如下:

const path = require('path');
const webpack = require('webpack');module.exports = {entry: {// 想统一打包的类库vendor: ['react']},output: {path: path.join(__dirname, 'dist'),filename: '[name].dll.js',library: '[name]-[hash]'},plugins: [new webpack.DllPlugin({// name 必须和 output.library 一致name: '[name]-[hash]',// 该属性需要与 DllReferencePlugin 中一致context: __dirname,path: path.join(__dirname, 'dist', '[name]-manifest.json')})]
};

接着,我们执行这个配置文件以生成依赖文件。然后,在项目的Webpack配置文件中,我们需要使用DllReferencePlugin将依赖文件引入项目中,示例代码如下:

module.exports = {// ...其他配置plugins: [new webpack.DllReferencePlugin({context: __dirname,// manifest 就是之前打包出来的 json 文件manifest: require('./dist/vendor-manifest.json'),})]
};

通过以上步骤,我们可以使用DllPlugin预编译依赖模块,将第三方库单独打包,避免每次构建都重新编译这些模块,从而提高Webpack的打包效率。

5. 使用Tree Shaking:

确保你的代码中使用ES6模块,并配置Webpack进行Tree Shaking,去除未引用的代码,减小最终打包体积。

Tree Shaking是指通过静态分析,去除JavaScript代码中未被引用的部分,使得最终打包的文件更小、加载速度更快。

ES6模块语法允许我们使用importexport来管理模块之间的依赖关系。这种语法使得Tree Shaking成为可能。

在一个实际的项目中,假设你正在开发一个网页应用,你需要确保应用在加载时能够尽快呈现给用户,并且在各种网络条件下都能快速加载。同时,你也希望减小应用的体积,以提高整体性能。

假设你的项目中使用了大量的第三方库和工具,但实际只使用了其中的一部分功能。你希望在打包过程中去除未使用的代码,以减小最终的打包体积。

// math.js
export function square(x) {return x * x;
}export function cube(x) {return x * x * x;
}// app.js
import { square } from './math';console.log(square(5));
  1. 确保你的代码中使用了ES6模块语法,例如使用importexport来组织你的代码。
  2. 在Webpack配置中,确保开启了对ES6模块的支持,并开启了Tree Shaking功能。
  3. 当Webpack进行打包时,它会分析你的代码,识别出未被引用的部分(比如cube函数),并将其从最终的打包文件中移除。

需要注意:

  • 确保你的项目中的所有代码都采用了ES6模块语法,以便Tree Shaking生效。
  • 在使用第三方库时,确保这些库也采用了ES6模块语法,以便Tree Shaking可以正确地剔除未使用的代码。

Tree Shaking通过去除未引用的代码,可以显著减小最终的打包体积,提高应用的加载速度。在实际项目中,结合ES6模块语法和正确的Webpack配置,可以轻松使用Tree Shaking来优化前端应用的性能。

6. 使用缓存:

使用babel-loader、ts-loader等时,开启缓存选项,以避免每次都重新编译所有文件。

什么是缓存选项?
在Webpack中,很多Loader(比如babel-loader、ts-loader等)都提供了缓存选项。开启这些选项可以让Webpack在重新编译时避免重新处理未改动的文件,从而加快构建速度。

在一个实际的项目中,当你使用诸如babel-loader和ts-loader这样的工具来处理JavaScript和TypeScript文件时,你希望避免每次都重新编译所有文件,特别是在项目变得庞大时,重新编译所有文件会消耗大量时间。

假设你的项目中有大量的JavaScript和TypeScript文件需要通过babel-loader和ts-loader进行编译,你希望通过开启缓存选项来减少不必要的重复编译,提高构建速度。

// webpack.config.js
module.exports = {module: {rules: [{test: /\.js$/,use: {loader: 'babel-loader',options: {cacheDirectory: true // 开启babel-loader的缓存选项}}},{test: /\.ts$/,use: {loader: 'ts-loader',options: {transpileOnly: true, // 只进行转译,不进行类型检查happyPackMode: true, // 开启HappyPack模式experimentalWatchApi: true, // 使用实验性的监视APIcache: true // 开启ts-loader的缓存选项}}}]}
};
  1. 在Webpack配置中,针对babel-loader和ts-loader,分别开启它们的缓存选项。
  2. 当开启了缓存选项后,Webpack会将已经编译过的结果缓存起来,下次重新构建时会优先使用缓存的结果,而不是重新编译所有文件。

需要注意:

  • 开启缓存选项可能会占用一定的磁盘空间,因为Webpack会把缓存的结果存储在磁盘上。
  • 当源文件发生变化时,确保清除缓存,以便得到最新的编译结果。

通过开启babel-loader和ts-loader的缓存选项,我们可以避免每次都重新编译所有文件,从而显著提高构建速度。在大型项目中,这种优化尤为重要,能够节省大量的开发时间,提高开发效率。

7. Code Splitting:

合理使用Webpack的代码分割功能,按需加载资源,减少初始加载时间。

代码分割是指将你的代码分成多个小块,并在需要时按需加载这些小块,从而减少初始加载时间。Webpack提供了代码分割功能,可以帮助我们优化应用程序的性能。

在一个实际的项目中,当你的应用变得庞大时,初始加载时间可能会变长。为了改善用户体验,你希望减少初始加载时间,让用户能够更快地看到应用界面。

假设你正在开发一个网页应用,应用中有一些功能模块只在特定情况下才会被使用到。你希望通过代码分割,将这些功能模块单独打包,并在需要时再动态加载,以减少初始加载时间。

// app.js
import('./module1').then(module1 => {// 使用module1
});// webpack.config.js
module.exports = {//...optimization: {splitChunks: {chunks: 'all'}}
};
  1. 在代码中,使用动态import()来引入需要按需加载的模块。
  2. 在Webpack配置中,通过optimization.splitChunks配置来告诉Webpack对所有模块进行代码分割。

需要注意:

  • 确保只对确实需要按需加载的模块使用代码分割,过度细化的代码分割可能会导致加载时间变长。
  • 对于公共模块,可以使用splitChunks来提取重复的代码块,以便复用。

通过合理使用Webpack的代码分割功能,我们可以将应用拆分成小块,并在需要时按需加载,从而减少初始加载时间,提高用户体验。在大型应用中,代码分割是优化性能的重要手段之一,能够有效减少不必要的加载,提升应用的响应速度。

8. 压缩输出:

在生产环境中启用Webpack的压缩插件(如UglifyJsPlugin、TerserPlugin)来减小输出体积。

在生产环境中,我们需要启用Webpack的压缩插件(如UglifyJsPlugin、TerserPlugin)来减小输出体积。

在Webpack3中,通常使用UglifyJS来压缩代码。然而,由于UglifyJS是单线程运行的,为了加快效率,可以使用webpack-parallel-uglify-plugin来并行运行UglifyJS,从而提高效率。

而在Webpack4中,不再需要进行上述操作。只需将mode设置为production就可以默认开启以上功能。代码压缩是我们必须执行的性能优化方案。当然,我们不仅可以压缩JS代码,还可以压缩HTML、CSS代码。在压缩JS代码的过程中,我们还可以通过配置实现例如删除console.log这类代码的功能。

9. 其他

当优化Webpack的打包速度时,我们可以通过一些小的优化点来加快打包速度:

  1. resolve.extensions:这个属性用来表明文件后缀列表,默认查找顺序是 [‘.js’, ‘.json’]。如果你的导入文件没有添加后缀,Webpack会按照这个顺序查找文件。为了加快查找速度,我们应该尽可能减少后缀列表长度,并将出现频率高的后缀排在前面。

  2. resolve.alias:通过别名的方式来映射一个路径,能让Webpack更快地找到路径。这样可以避免深层次的文件递归查找,提高查找速度。

  3. module.noParse:如果你确定一个文件下没有其他依赖,就可以使用该属性让Webpack不扫描该文件。这种方式对于大型的类库很有帮助,可以节省扫描时间,加快打包速度。

这些优化点都能够在一定程度上提高Webpack的打包速度,特别是在处理大型项目时尤为重要。

通过以上方法,你可以有效地提高Webpack的打包速度。

如何减少 Webpack 打包体积

当优化Webpack打包体积时,你可以采取以下措施:

1. 代码压缩

在生产环境中启用Webpack的压缩插件(如UglifyJsPlugin、TerserPlugin)来减小输出体积。这通过删除注释、空格以及压缩代码来实现。

2. Tree Shaking

确保使用ES6模块化语法,并且通过静态分析去除未引用的代码,以减少最终打包的体积。这意味着只有被引用的代码会被包含在最终的bundle中。

3. 按需加载

使用动态导入(dynamic import)或者懒加载技术,只在需要时加载代码,而不是一次性将所有代码打包到一个文件中。

4. 图片压缩

对图片进行压缩处理,可以使用像imagemin这样的工具,以减小图片所占的空间。这可以通过配置Webpack的loader来实现。

5. 移除无用代码

检查并移除项目中未使用的第三方库或工具,以减少打包体积。这包括清理未使用的依赖和工具库。

6. 优化配置

通过合理配置Webpack的splitChunksPlugin和optimization.splitChunks等功能,将公共代码抽离成单独文件,避免重复打包。这有助于减小每个页面加载的体积。

7. 使用CDN

将一些稳定不经常更新的第三方库通过CDN引入,减少打包体积。这样可以利用缓存和并行下载来提高加载速度。

项目需求

在实际项目中,我们通常会面对需要优化网页加载速度和性能的情况。例如,在一个电子商务网站中,随着产品数量的增加,前端资源的体积也会相应增加,因此需要对网站进行性能优化,减少首屏加载时间。

假设我们有一个React应用,其中包含大量图片和第三方库。我们需要确保页面加载速度快,用户能够快速浏览产品信息。

// webpack.config.js
const path = require('path');
const TerserPlugin = require('terser-webpack-plugin');module.exports = {mode: 'production',entry: './src/index.js',output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),},optimization: {minimize: true,minimizer: [new TerserPlugin()],},module: {rules: [{test: /\.(png|jpe?g|gif)$/i,use: [{loader: 'file-loader',},],},],},
};

上述代码展示了一个基本的Webpack配置,其中使用了TerserPlugin来进行代码压缩,同时使用file-loader来处理图片文件。这样可以在生产环境中减小Webpack打包体积。

需要注意:

  • 确保在生产环境中启用压缩插件。
  • 使用合适的loader来处理图片等静态资源,以减小其占用的空间。
  • 在开发过程中,始终关注引入的第三方库和工具的使用情况,确保移除未使用的代码。

总结

优化Webpack打包体积是一个持续的过程,需要综合考虑代码压缩、按需加载、Tree Shaking等多种手段。

如何⽤webpack来优化前端性能?

用Webpack优化前端性能

优化前端性能,就是通过调整Webpack的配置,使得最终打包的结果在浏览器中能够更快速、高效地运行。

压缩代码

压缩代码是指通过删除多余的代码、注释,以及简化代码的写法来减小文件体积。在Webpack中,可以使用UglifyJsPlugin和ParallelUglifyPlugin来压缩JS文件,同时利用cssnano(通常与css-loader?minimize一起使用)来压缩CSS。

利用CDN加速

在构建过程中,将引用的静态资源路径修改为CDN上对应的路径,以便利用CDN加速加载。这可以通过Webpack的output参数和各loader的publicPath参数来修改资源路径。

Tree Shaking

Tree Shaking是指通过删除永远不会执行到的代码片段来减小打包体积。在Webpack中,可以通过在启动webpack时追加参数 --optimize-minimize 来实现。

Code Splitting

Code Splitting是将代码按路由或组件维度分块,实现按需加载,同时充分利用浏览器缓存。这可以通过Webpack的动态导入(dynamic import)或者React.lazy()来实现。

提取公共第三方库

利用SplitChunksPlugin插件来进行公共模块抽取,以便利用浏览器缓存长期缓存这些无需频繁变动的公共代码。

项目需求

在一个电商网站中,需要优化页面加载速度和性能,确保用户能够快速浏览产品信息,同时减少首屏加载时间。

假设我们有一个React应用,其中包含大量图片和第三方库。我们需要确保页面加载速度快,用户能够快速浏览产品信息。

// webpack.config.js
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin');
const cssnano = require('cssnano');module.exports = {mode: 'production',entry: './src/index.js',output: {filename: 'bundle.js',path: path.resolve(__dirname, 'dist'),publicPath: 'https://cdn.example.com/assets/',},optimization: {minimizer: [new UglifyJsPlugin(),new ParallelUglifyPlugin({// configuration options}),],},module: {rules: [{test: /\.css$/,use: ['style-loader',{loader: 'css-loader',options: {minimize: true,},},],},],},
};

上述代码展示了一个基本的Webpack配置,其中使用了UglifyJsPlugin和ParallelUglifyPlugin来压缩JS文件,同时利用css-loader来压缩CSS。另外,通过output的publicPath参数设置CDN路径。

需要注意:

  • 确保在生产环境中启用压缩插件。
  • 使用合适的loader来处理图片等静态资源,以减小其占用的空间。
  • 在开发过程中,始终关注引入的第三方库和工具的使用情况,确保移除未使用的代码。

总结

优化Webpack打包体积是一个持续的过程,需要综合考虑代码压缩、按需加载、Tree Shaking等多种手段。通过合理配置Webpack和优化代码,可以达到提升前端性能的目的。

如何提⾼webpack的构建速度?

当要提高Webpack的构建速度时,可以采取以下一些方法:

1. 使用最新版本的Webpack

确保你使用的是最新版本的Webpack。每个新版本通常都会带来性能改进和优化。

2. 精心选择Loader和Plugin

只加载必要的资源和文件,并选择对你的项目最优化的Loader和Plugin。有时候,不必要的Loader或Plugin会拖慢构建速度。

3. 使用HappyPack

HappyPack可以将任务分发给多个子进程并行地执行,从而加快构建速度。

4. 缩小文件搜索范围

通过配置resolve.modules、resolve.extensions、resolve.mainFiles等选项,可以缩小Webpack在文件系统中搜索文件的范围,从而提高构建速度。

5. 使用DllPlugin预编译资源模块

DllPlugin可以提前进行编译打包第三方库(如React、Vue等),然后在实际业务代码构建时直接引用,避免重复构建。

6. 开启持久化缓存

使用webpack的cache选项,或者使用第三方工具如hard-source-webpack-plugin来开启持久化缓存,可以加速后续的构建过程。

7. Tree Shaking

通过使用ES6模块语法,Webpack可以更好地进行Tree Shaking,即删除未使用的代码,减小打包体积,同时也有助于提高构建速度。

8. 使用多进程/多实例构建工具

例如使用webpack-parallel-uglify-plugin插件可以让UglifyJsPlugin并行运行,从而提高构建速度。

9. 减少监视文件

在开发环境下,尽量减少监视文件的数量。可以通过配置ignore选项来排除不必要监视的文件。

10. 持续优化和调整配置

定期审查和优化Webpack配置,根据项目需求和新特性不断调整配置,以达到更好的构建速度和性能。

以上这些方法可以显著提高Webpack的构建速度,使开发流程更加高效。另外,还有一些其他方法,比如:

  • 使用CommonsChunkPlugin来提取公共代码
  • 通过externals配置来提取常用库
  • 利用DllPlugin和DllReferencePlugin预编译资源模块
  • 使用Happypack实现多线程加速编译
  • 使用webpack-uglify-parallel来提升uglifyPlugin的压缩速度
  • 使用Tree-shaking和Scope Hoisting来剔除多余代码

这些方法结合起来可以更大程度地提高Webpack的构建速度,使得前端开发更为高效和顺畅。

持续学习总结记录中,回顾一下上面的内容:
当你想要提高Webpack的打包速度时,可以通过使用最新版本的Webpack、精心选择Loader和Plugin、利用HappyPack实现多线程加速编译、缩小文件搜索范围等方法来有效提升构建速度。减少Webpack打包体积可通过Tree Shaking、使用externals配置来提取常用库、利用DllPlugin和DllReferencePlugin预编译资源模块等方式实现。要优化前端性能,可以利用Webpack进行资源压缩、代码拆分、懒加载、图片压缩和使用合适的Loader和Plugin。以上这些方法结合起来,可以显著提高Webpack的构建速度,减少打包体积,并优化前端性能,使得开发流程更加高效。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/855404.shtml

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

相关文章

MySQL 函数

1、CURDATE():返回当前的日期。 2、查询当前年月 SELECT DATE_FORMAT(CURDATE(),%Y-%m) AS year_month 3、当前日期添加 1 个月 INTERVAL 1 MONTH 4、查询近6个月的月份 SELECT DATE_FORMAT(CURDATE(),%Y-%m)AS year_month UNION SELECT DATE_FORMAT((CURDAT…

【网络安全学习】使用Kali做信息收集 -03- <综合侦察>

综合侦察涉及从多个来源收集和分析目标的信息,以了解其背景、特征、潜在漏洞和风险。 下面介绍一些在Kali中常用的综合侦察工具。 1.Dmitry 它是一个命令行工具,可以使用不同的选项来收集目标的各种信息。 Dmitry可以与whois服务和Netcraft服务结合使…

【启明智显产品介绍】Model4 工业级HMI芯片详解系列专题(一):芯片性能

Model4 工业级HMI芯片详解系列专题(一)【芯片性能】 Model4系列工业级MPU是国产自主面向工业应用的RISC-V架构的应用级芯片,内置玄铁64bit RISC-V CPU C906,主频高达600MHz,算力约1380DMIPS。 Model4系列工业级MPU具…

层次越高的人,越“冷漠”?

层次越高的人越冷漠。 人际关系无疑是我们生活中很重要的一部分。 我们生来渴望连接和互动,但这种渴望有时会让我们忘记自己的需求和边界。 我们可能会牺牲掉自己的时间,经历和情感迎合别人,以求得到认可和爱。 然而,当我们在人际…

HTML5 Web Workers: 异步编程的强大力量

在现代Web开发中,随着应用程序变得越来越复杂,用户界面的流畅性和响应性成为了决定用户体验好坏的关键因素之一。传统的JavaScript执行模型中,所有脚本都在同一个线程上运行,这意味着复杂的计算任务会阻塞UI更新,导致页…

BizDevOps全局建设思路:横向串联,纵向深化

本文来自腾讯蓝鲸智云社区用户:CanWay BizDevOps概述 IT技术交付实践方法在不断迭代中持续优化。在工业化时代,Biz(业务)、Dev(开发)、Ops(运维)三者往往相对分离,甚至有…

Transformer预测 | 基于Transformer+LSTM股票价格预测时间序列预测(Pytorch)

效果一览 基本介绍 股票行情是引导交易市场变化的一大重要因素,若能够掌握股票行情的走势,则对于个人和企业的投资都有巨大的帮助。然而,股票走势会受到多方因素的影响,因此难以从影响因素入手定量地进行衡量。但如今,借助于机器学习,可以通过搭建网络,学习一定规模的股…

Tailwindcss Hover, Focus, Other States (悬停、聚焦和其他状态) Limitations

Tailwindcss Hover, Focus, & Other States (悬停、聚焦和其他状态) Limitations 背景 项目代码有需求是仅在hover状态下显示滚动条,在集成css之前的做法是定义一个css类,编写类的样式如下 .container {height: 300px;overflow-y: hidden; }.cont…

技术专家篇:深入理解Spring Boot配置类中List<Bean>参数的应用

例如 Configuration ConditionalOnClass(LoginUser.class) public class DataPermissionAutoConfiguration {BeanConditionalOnBean(value { PermissionApi.class, DeptDataPermissionRuleCustomizer.class })public DeptDataPermissionRule deptDataPermissionRule(Permissi…

API-操作元素内容

学习目标: 掌握操作元素内容 学习内容: 操作元素内容元素innerText属性元素innerHTML属性案例 操作元素内容: DOM对象都是根据标签生成的,所以操作标签,本质上就是操作DOM对象。就是操作对象使用的点语法。如果想要修…

Table 宽度超出页面宽度时,出现滚动条,单元格内容不换行实

修改前 方法 <div styleoverflow:auto><table stylewhite-space: nowrap></table> </div>修改后

@pytest.fixture与@pytest.mark.parametrize结合实现参数化

背景&#xff1a;测试数据既要在fixture方法中使用&#xff0c;同时也在测试用例中使用 使用方法&#xff1a;在使用parametrize的时候添加"indirectTrue"参数。pytest可以实现将参数传到fixture方法中&#xff0c;也可以在当前测试用例中使用。 原理&#xff1a;参…

推荐一个github项目

声明 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 本文章未经许可禁止转载&#xff0…

Harbor本地仓库搭建003_Harbor常见错误解决_以及各功能使用介绍_镜像推送和拉取---分布式云原生部署架构搭建003

首先我们去登录一下harbor,但是可以看到,用户名密码没有错,但是登录不上去 是因为,我们用了负债均衡,nginx会把,负载均衡进行,随机分配,访问的 是harbora,还是harborb机器. loadbalancer中 解决方案,去loadbalance那个机器中,然后 这里就是25机器,我们登录25机器 然后去配置…

【Ubuntu开发入门之“orangepi H3 linux开发②u-boot移植“】

Ubuntu开发入门之"orangepi H3 linux开发@u-boot移植" 问题描述解决方法获取u-boot源码编译配置u-boot制作并烧录TF 卡结束语郑重声明:本人原创博文,都是实战,均经过实际项目验证出货的 转载请标明出处:攻城狮2015 Platform: Allwinner H3 OS:Linux ubuntu开发之“…

8.12 矢量图层面要素单一符号使用二(仅渲染中心点)

文章目录 前言仅渲染中心点&#xff08;Centroid fill&#xff09;QGis设置面符号为仅渲染中心点&#xff08;Centroid fill&#xff09;二次开发代码实现仅渲染中心点&#xff08;Centroid fill&#xff09; 总结 前言 本章介绍矢量图层线要素单一符号中仅渲染中心点&#xf…

DSP——从入门到放弃系列2——PLL锁相环(持续更新)

1、概述 锁相环&#xff08;Phase Locked Loop,PLL&#xff09;是处理器的时钟源&#xff0c;控制着C6678处理器中C66x内核、各外围设备的时钟的时钟比、对准和选通功能。 2、功能描述 上图显示了PLL和PLL控制器的逻辑实现。PLL控制器提供通过软件可配置的分频器&#xff0…

MT8766安卓4G核心板_MTK联发科PCBA方案开发

MT8766是联发科四核4G模块方案&#xff0c;安卓一体板。 采用台积电 12 nm FinFET 制程工艺&#xff0c;4*A53架构&#xff0c;Android 9.0操作系统&#xff0c;搭载2.0GHz 的 Arm NEON 引擎。提供了支持最新 OpenOS 及其要求苛刻的应用程序所需的处理能力&#xff0c;专为具有…

离散数学学习总结

今天看了离散数学的第一章&#xff0c;也是简单来总结一下离散数学第一章的知识点 1.1命题符号化及联结词 命题&#xff1a;能够判断真假的陈述句&#xff0c;以及具有唯一的真值 命题三要素&#xff1a;1.能够判断真假 2.陈述句 3.具有唯一真值 联结词&#xff1a; 1.否定…

自然语言处理(NLP)—— 神经网络自然语言处理(Neural NLP)基础知识

1. 文章概览 本文是关于神经网络自然语言处理&#xff08;Neural NLP&#xff09;的概览&#xff0c;涵盖了基础原则、历史概览、处理流程、神经网络架构以及最近的训练范式。 1.1 基本原则 这部分会讲述自然语言处理&#xff08;NLP&#xff09;与神经网络在处理语言任务时遵…