webpack 4系列笔记(2)基本配置

webpack入门跟学笔记 学习了两个星期,断断续续终于还是把webpack4学完了,我学习的时候webpack5是已经出来了的,但是大同小异先学webpack4再过渡到webpack5可以了解他们之间的差异,本次学习无项目实战,主要为webpack的配置详解,过程中因为版本问题也遇到了一些错误,在此记录我的学习笔记,这是跟做的版本,即有详细的步骤,后续还会想整理再发布一个知识点版的,大家一起进步!笔记如有错误,欢迎评论指正。 文章目录一、webpack概述1、什么是webpack2、需要提前掌握的内容3、最终掌握的webpack哪些 阅读详情

加载图片与图片优化:

如果不加对图片处理的loader, 就会报错:

vscode中竖排选中如何选中?command+option+ ∨ (向下箭头),则可以按纵向选中项。

shift+ >(向左箭头),则可以按横向选中项。

 

file-loader: 处理文件的导入

module: { 
    rules: [ 
        { 
            test: /\.(png|svg|jpg|gif)$/, 
            use: ['file-loader'] 
        } 
    ] 
}

此时运行打包,发现dist目录多了一个图片文件,另外报错不再出现

图片优化:image-webpack-loader: 可以帮助我们对图片进行压缩和优化

Alt + shift + F 格式化代码

打包之后,发现,图片从6.52KB压缩成3.87KB

 

处理图片成base64:

url-loader: 功能类似于file-loader, 可以把url地址对应的文件,打包成base64的dataURL,可以提高访问效率。

file-loader退出历史舞台

 

{ 
    loader: 'url-loader', // 根据图片大小,把图片优化成base64 
    options: { 
        limit: 10000 
        // 以字节为单位,在限制以下会转成base64,减少一次网络请求; 否则仍然是本地路径url; 
    } 
}

 

limit不宜设置过大,图片很大的时候,转base64也会比较缓慢,加载会变慢;

字体的处理跟图片一样,可以使用url-loader

 

合并两个webpack的js配置文件:

安装webpack-merge

css处理:开发阶段使用style-loader; 生产阶段使用css-loader

js开启sourceMap:

在开发阶段开启:

let devConfig = { 
    mode: 'development', 
    output: { 
        filename: 'main.js', 
        path: path.resolve(__dirname, 'dist') 
    }, 
    devtool: 'inline-source-map', 
    ... 
}

 

监控文件变化,自动编译。使用观察模式:

npx webpack --watch

在package.json中配置:

"scripts": { 
    "watch": "npx webpack --watch --config webpack.dev.js", 
},

运行:npm run watch

但是有个问题,就是每次我们修改 js 或者 css 文件后,要看到修改后的 html 的变化,需要我自己重新刷新页面。如何能不刷新页面,自动更新变化?

 

webpack启动热更新和代理模式:

使用webpack-dev-server和热更新:安装webpack-dev-server

配置:

const webpack = require('webpack');
devServer: { 
    contentBase: './dist', 
    hot: true 
}, 
plugins:[ 
    new webpack.NamedModulesPlugin(), // 更容易查看(patch)的依赖 
    new webpack.HotModuleReplacementPlugin() // 替换插件 
]

 

 

 

stm32使用TB6600驱动器控制42BYGH型步进电机 阅读详情

相关推荐

一文带你看懂SAP-HANA的基本架构与原理

创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥创作不易,希望大家一键三连支持!!!♥♥♥。

丷江南南的博客 5077

Webpack基本配置

目录一、Webpack基本概念概念:webpack的四个核心概念:webpack的模式:webpack的两种安装方式二、webpack的基本使用2.1 命令行方式(每次修改需手动输入命令重新打包)2.2 webpack的配置文件方式2.3 实现webpack的热更新2.3.1 webpack-dev-server的几个指令2.3.2 使用`html-webpack-plugin`插件配置启动页面2.4 webpack配置打包静态文件2.4.1 打包css,less,scss文件2.4.2 图形路径和字体文件

冰冰凉的博客 5406

C#实战:如何用HslCommunication快速搞定三菱FX5U PLC通讯(附完整代码)

本文详细介绍了如何利用HslCommunication库在C#环境中快速实现与三菱FX5U PLC的通讯。通过实战代码演示,从环境搭建、建立连接、核心数据读写到构建健壮的监控服务,系统讲解了如何高效完成数据采集与交互,大幅提升工业自动化项目的开发效率。

s4t5u6v的博客 1202

实战笔记:Vue2项目Webpack 3升级到Webpack 4的实操指南

这个问题问得很好,我最开始也是直接一键升级到最新版,一启动,直接报各种版本不匹配(哭),由于项目比较大引入的依赖太多,实在是难以推进,所以退而求其次,先升级到webpack4.x,后面再想办法往上升!!!如果改完可以正常启动,那么恭喜你!升级成功了!!如果不幸失败了,那么。。。很抱歉没有给你提供有效的帮助(哭),你也可以留言或私信,我看看有没有遇到类似报错。希望我的经验能帮助你在升级Vue2项目到Webpack 4的过程中少走弯路!

Jiaberrr的博客 3641

QT+QTimer+QThread实现线程内的定时任务并且和主线程进行交互

在制作qt软件时,我们经常会用到qtimer定时器以及将其在非主线程中进行使用,甚至有的时候还需要和主线程进行交互。我总结了两种用法,仅供参考。以上即为QTimer和QThread联合使用的学习记录。

u011826081的博客 5685

JW01二氧化碳传感器实战:5分钟搞定Arduino环境监测系统(附完整代码)

本文详细介绍了如何使用JW01二氧化碳传感器与Arduino快速搭建环境监测系统。通过简单的硬件连接和完整的代码示例,读者可以在5分钟内实现CO2浓度实时监测,并了解数据解析、常见问题解决及进阶应用扩展。JW01传感器的高精度和易用性使其成为创客和嵌入式开发者的理想选择。

kite3的博客 383

深入了解webpack4基本配置及优化

1.初识webpack Webpack简介 webpack是什么 *Webpack是一种前端资源构建工具,一个静态模块打包器(module bundler)。 在Webpack看来,前端的所有资源文件(js/ css/ sass/ less/ img/ ,,,)都会作为模块处理 它将格局模块的依赖关系进行静态分析,打包生成对应的静态资源(bundle)。* webpack能干什么 代码转换...

qq_45157197的博客 1266

【系统架构设计师-2026上半年真题】案例分析-参考答案及详解(回忆版)

架构评估与设计:通过入侵检测系统的案例分析,阐述质量属性(性能/可用性/安全性/可修改性)的匹配方法,推荐管道-过滤器风格处理实时数据流,并设计8个核心构件实现数据采集到告警的全流程处理。 高并发优化方案: 分析悲观锁(排他锁/共享锁)与乐观锁的特性差异,提出乐观锁通过版本号/CAS实现,悲观锁适用于强一致性场景。 给出Redis优化三手段:分布式锁控制临界资源、Lua脚本保证原子操作、热点数据多级缓存,结合消息队列削峰填谷。 分层架构实践: 智

数据知道的博客 1684

深入浅出Webpack2-快速掌握webpack基本配置

这篇文章介绍了webpack基本配置,掌握了这些基本配置之后,才能更好的查阅文档,拿到需求后知道需求在文档中的哪一个模块

qq_41040989的博客 939

EXCEL VBA从入门到精通 第一章:VBA入门

在VBA中,需要使用关键字Dim来定义一个变量,后面跟上变量名和变量的数据类型。例如,下面的代码定义了一个整型变量x和一个字符串变量name在VBA中,使用关键字Const来定义常量,后面跟上常量名和常量的值。例如,下面的代码定义了一个整型常量MAX_NUM和一个字符串常量MESSAGE需要注意的是,常量一旦被定义,其值就不能被改变。

1万+

手把手教你学Simulink--复杂环境适应的四足机器人领域仿真建模实例:构建一个基于Simulink的四足机器人动态平衡保持仿真模型

通过上述步骤,你可以构建一个基本的基于Simulink的四足机器人动态平衡保持仿真模型。此模型不仅有助于理解四足机器人在复杂环境中的动态平衡控制原理,也为进一步优化提供了基础。随着技术的发展,还可以探索更多高级功能,如自适应步态调整、强化学习等,以提高机器人的智能性和适应性。

MHD0815的博客 237

简述vue2使用webpack脚手架升级至webpack4

vue2、webpack4、babel7、eslint7、webpack脚手架、项目升级、前端项目、vue项目工程化、前端webpack打包

qq_42168187的博客 2317

数据本体论如何指导数仓建模?

数据本体论指导数仓建模的核心在于构建业务语义与数据结构的桥梁。该方法从业务域中抽象标准化知识体系,包含核心概念、属性、关系和规则五大要素,并将其映射为分层数仓模型。通过"业务本体梳理→本体建模→模型映射→治理迭代"的流程,实现数仓从"结构存储"到"语义载体"的升级。相比传统建模,该方法能解决语义不一致、跨域融合难等问题,使数仓具备更好的可扩展性和业务对齐性。实践表明,以数据本体论为指导的数仓建模能显著提升数据资产的可理解性和复用价值。

石榴姐yyds 395

webpack基本配置

不足,请补充

weixin_51977111的博客 9704

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

记一次webpack2升级为webpack4的爬坑之路

        webpack4官方发布以来,很多博主都已经上手开撸了,但是大体都是对着API新配置一份,我今天尝试了一下将我们公司的webpack2项目迁移到webpack4,下面是记录的几个坑。一、环境准备    1、node 6.10+    2、下载webpack4   npm install webpack@4 -D二、根据控制台错误一个一个的修改问题1、WebpackOptionsVa...

ttxxsir的博客 6543

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Vue CLI4 0 webpack配置属性

有时候,你可能需要处理一些特殊的文件类型,这时候就需要添加自定义的 loader。module: {rules: [use: [在这个例子中,我们添加了一个处理.md文件的规则,使用和来转换 Markdown 文件。

一个做过前端开发的产品经理,经历过睿智产品的折磨导致脱发之后,励志要翻身"农奴"把歌唱,一边打入敌人内部一边持续提升自己,为我们广大开发同胞谋福祉,坚决抵制睿智产品折磨我们码农兄弟! 2090

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Vue2 项目 Webpack 4 升级 webpack5

避免冗余插件,且会报奇怪的错误。或直接删除 node_modules 文件夹;中删除如下代码,暂无配置需要。**解决方案:**安装。使用npm模块升级工具。

weixin_52226429的博客 3848

记录webpack2升级至webpack4

记录webpack2升级至webpack4 1、更新webpack下载webpack-cli node版本要6以上 npm install webpack@4 -D npm install webpack-cli@3 -D 下面这种报错就是插件版本问题 TypeError: Cannot read property 'xxx' of undefined "webpack": "^4.44.2", "webpack-cli": "^3.3.12", 警告暂时没有解决 (node:43802) Deprec

wangjunjie_97的博客 1411

【webpack】webpack4基本的构建过程

前提 安装node,npm(新版本的node安装时会同时安装npm)。如果想提高下载安装包时的速度,可以安装淘宝镜像cnpm。接下来,开始讲解webpack的基本构建过程。 过程 1.在项目目录下,执行npm init --yes,执行完生成一个package.json的文件。 2.安装webpack(以下两种方式自选): npm install --save-dev webpack【本地安装,默...

Liz's blog hut. 837

webpack5 学习系列 —— 基本概念

本质上,webpack 是一个用于现代 JavaScript 应用程序的 静态模块打包工具。

且听风吟的博客 1663

uglifyjs报错 webpack_基于vue2.X的webpack基本配置,教你手动撸一个webpack4的配置

webpack说复杂也不复杂。不复杂,核心概念不外乎是entry, output, loader, plugins。webpack4还新增了optimization选项,用于代码分割和打包优化。现在webpack官网文档已经写的挺棒了。而当你真正开始手写一个webpack.config.js的时候,你就会发现,要记得东西有点儿多,还挺复杂的……好啦,本文讲的是手动编写基于vue开发的webpack...

weixin_30647853的博客 295

webpack配置_细说webpack系列 4. webpack的常见配置(上)

大家好!我是萝卜,这一章跟大家介绍 webpack 4 常见的配置。webpack.config.js配置文件webpack 是可配置的模块打包工具,可以通过修改 webpack.config.js 的配置文件对 webpack 进行配置,webpack 的配置文件遵循 Nodejs 的 CommonJS 模块规范,可通过 require() 语法导入其他文件或者使用 Nodejs 内置的模块,其...

weixin_39799646的博客 178

webpack4系列教程

webpack4 系列教程: 前言 webpack4 系列教程(一): 打包JS webpack4 系列教程(二): 编译 ES6 webpack4 系列教程(三): 多页面解决方案--提取公共代码 webpack4 系列教程(四): 单页面解决方案--代码分割和懒加载 webpack4 系列教程(五): 处理CSS webpack4 系列教程(六): 处理SCSS webpack4...

大灰狼的小绵羊哥哥的博客 551

Webpack 4 入门笔记

Webpack4 入门笔记

小天才程序员的博客乐园 9343

webpack4.x最佳实践-2.webpack基本环境搭建

webpack环境搭建

厚积薄发 435

关于webpack的基本配置

为什么要有webpack构建和打包?更好的模块化管理。webpack支持模块化规范:代码分割成独立模块,并管理模块之间的依赖关系。资源打包。将js文件、css文件、图片等多个资源打包成单个或多个文件,减少请求,提高加载性能性能,且webpack支持资源压缩、优化、缓存等处理。转换和编译。如用Bable将ES6+代码转为向后兼容版本如ES5,将sass、less、stylus转为浏览器能识别的css代码,将ts转为js等。代码拆分和懒加载。

weixin_42936434的博客 1274
上一篇: webpack 4系列笔记(3)babel
下一篇: splice、slice、substring、substr的区别
spicyboiledfish
博客等级 码龄10年 46粉丝 120原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值