webpack多页应用架构专题系列

webpack 多页面 打包 最近有一个需求,需要把多页面使用webpack进行编译,但是网上进行多页面编译的资料很少,今天把自己配置的webpack多页面打包编译分享给大家demo地址:https://github.com/mengYu007/webpack3代码启动:    打开cmd进入文件目录npm install   编译文件:npm run build   启动文件:npm run start文件目录:packag... 阅读详情

【此系列均出自】多页为王博客:http://array_huang.coding.me/webpack-book/




一步一步解决架构痛点

这系列文章讲什么?

本系列文章主要介绍如何用webpack这一当前流行的构建工具来设计一个多页应用的架构。请注意,本文并非新手教程,着重点更多是在于提供解决问题的思路,而非手把手带你装逼。

作者介绍

本人供职于某互联网物流公司,专职前端,公司虽仍处于创业阶段,但产品线已经拉得挺长的了,因此所碰到的痒点、痛点也不少。我本是PHPer出身,对传统前端茹毛饮血的境况恨之入骨,幸得webpack这一神器,我感觉现在写前端已经跟写PHP差不多了(大误)。

示例代码

诸位看本系列文章,搭配我的脚手架项目食用更佳哦(笑):Array-Huang/webpack-seed

后续发展

我相信,架构不是一蹴而就的,而是一个不断迭代的过程,每跨过一个坑、每解决一个痛点痒点,都能使架构更加健壮;因此,我也将把我后续对架构的优化继续撰写成文章(不过当然是先把目前架构的内容写完啦哈哈哈哈),并相应地改写示例代码(其实说不定是我先在示例代码试验过后再搬到实际项目里使用呢)。


实例:
这是一个基于webpack的多页应用脚手架 https://segmentfault.com/a/1190000006843916
https://github.com/Array-Huang/webpack-seed

这是Array-Huang/webpack-seed的v2版本,实现多项目共用同一套 架构/基础设施:
https://github.com/Array-Huang/webpack-seed-v2
Webpack多页面工程化开发脚手架:IE8兼容与移动端优化 本文还有配套的精品资源,点击获取 简介:Webpack作为现代前端模块打包工具,在处理复杂的单页应用(SPA)方面表现出色,但在传统多页面项目开发中,需通过特定配置来满足IE8浏览器的支持和多平台兼容性。本手脚架提供了一套完整的Webpack配置方案,包括多页面入口的设置、IE8的ES5兼容性处理、移动端适配以及相关工具链的集成,帮助开发者快速构建符合多平台需求的项目,并优... 阅读详情

相关推荐

Webpack多页面应用高效构建指南

本文还有配套的精品资源,点击获取 简介:Webpack作为模块打包工具,尤其在处理大型多页面项目时,其多页面入口配置显得至关重要。本文详细讲解了多页面入口配置的必要性,具体配置方法,以及如何优化构建效率,比如提高构建效率、组织清晰的代码、实现更好的复用性,并介绍如何使用html-webpack-plugin生成多个HTML文件,处理公共模块,以及实现按需加载等进一步优化策略...

weixin_35516273的博客 855

webpack4.0 多页面脚手架

webpack4.0 爬坑记 爬了好久的webpack,第一次上手时,就已经是webpack4了,最近又重新来熟悉了一波, 仔细一看,webpack4真的是一个跨时代的作品,对比webpack3有了一个质的飞跃。 新的公共代码抽离工具(optimization.SplitChunksPlugin),提取重用代码,减少打包文件。代替了commonchunkplugin。(不得不说我在这里踩了很...

weixin_34290390的博客 429

webpack多页面脚手架基于webpack的前端工程化开发解决方案

webpack 多页面脚手架,基于webpack的前端工程化开发解决方案

webpack4搭建多页面脚手架(一)

开始的开始步入前端已经一年多了,真心的体会到前端世界变化莫测,从jquery到vue,也算经历了一场大前端的变革。而在这几年,webapck的呼声越来越高。远超gulp,grunt等打包工具。平时使用vue-cli时用得biu顺,等到自己搭的时候就有点捉襟见肘了。(本次使用的是webpack4以上,小心踩坑,注意脚下)项目的初始化使用npm init进行初始化操作 ,初始化界面会要求你输入对应的配...

talen123的博客 7565

TWR-K65F180M评估板:基于Cortex-M4的嵌入式原型开发实战指南

在嵌入式系统开发中,微控制器(MCU)是核心,而围绕其构建的硬件平台则是将想法转化为可工作原型的关键。Cortex-M4内核凭借其高效的流水线、DSP指令集和浮点单元,为实时控制与信号处理提供了强大的运算能力。其技术价值在于,能够在较低功耗下满足工业控制、物联网网关等场景对能效比的严苛要求。为了快速验证系统设计,开发者常使用成熟的评估板来规避底层硬件设计的风险,直接聚焦于应用开发。本文以恩智浦的TWR-K65F180M评估板为例,深入解析其基于**ARM Cortex-M4**内核的K65 MCU的硬件架构

weixin_33582311的博客 370

避坑指南:PyTorch ConvLSTM参数配置的那些坑(hidden_dim/kernel_size/num_layers详解)

本文深度解析PyTorch ConvLSTM中hidden_dim、kernel_size和num_layers三大核心参数的配置技巧,提供实战指南和性能优化建议。通过实验数据揭示参数组合的内在规律,帮助开发者避免常见配置陷阱,提升时空序列建模效果。特别针对视频预测、气象预报等应用场景,给出黄金参数组合方案和调试技巧。

vv45678的博客 702

webpack搭建简单的多页面应用

1.新建webpack文件夹,npm -init,按需填写,也可以一路回车,最后‘y’ 2.在webpack目录下新建webpack.config.js文件,因为webpack打包时会自动查找根目录下webpack.config.js文件,若想自定义webpack的文件,可以使用 webpack --config参数 3.安装html-webpack-plugin插件 在终端中输入npm

b422761838的专栏 1万+

DSSAT模型建模教程

随着数字农业和智慧农业的发展,基于过程的作物生长模型(Process-based Crop Growth Simulation Model)在模拟作物对气候变化的响应与适应、农田管理优化、作物品种和株型筛选、农业碳中和、农田固碳减排等领域扮演着越来越重要的作用。现有版本V4.7能模拟27种主要农作物的生长发育和产量形成过程,被广泛应用于精细农业、水肥管理、气候变化、粮食安全、土壤碳周转、环境影响、农业可持续性、农业生态等诸多与农业生产和科研有关的领域。如果你是个模型入门者,这次将让你体验一键模拟的乐趣。

weixin_55561616的博客 1414

重写webpack多页应用配置脚手架

之前写了一个webpack多页应用的配置,只有一个webpack.config.js文件,实现了多入口配置打包css,js,资源文件处理。因为入口entry配置需要自己添加,HtmlWebpackPlugin有多少个页面也要自己添加。这样看来虽然配置是成功的,但过于机械化,是不可取的 为什么要进行多页应用配置?我们都知道开发vue,react这些应用时,一般都只有一个入口文件。而且官方都提供了自己的

yy211zhu的博客 4004

麒麟linux离线源码编译安装zabbix-agent

离线源码编译安装zabbix-agent

qq_37263429的博客 2268

实验5 振幅调制(集成乘法器幅度调制电路)

目录5-1 振荡调制的基本工作原理一.振幅调制和调幅波1.普通调幅波(AM)(1)调幅波的表达式、波形(2)调幅波的频谱2.抑制载波双边带调幅(DSB)3.抑制载波单边带调幅(SSB)二.普通调幅波的产生电路三.抑制载波调幅的产生电路5-2 振幅调制实验电路 5-1 振荡调制的基本工作原理 根据电磁波理论知道,只有频率较高的振荡才能被天线有效地辐射。但是人的讲话声音变换为相应电信号的频率较低,不适于直接从天线上辐射。因此,为了传递信息,就必须将要传递的信息“记载”到高频振荡上去。这一“记载”过程称为调

胡毛毛的博客 3万+

webpack多页应用架构专题系列 4

第四章:webpack的进阶应用 如何打造一个自定义的bootstrap? 前言 一般我们用bootstrap呐,都是用的从官网或github下载下来build好了的版本,千人一脸呐多没意思。当然,官网也给我们提供了自定义的工具,如下图所示,但每次要改些什么就要重新在官网上打包一份,而且还是个国外的网站,甭提有多烦躁了。 那么,有没有办法让我们随时随地都能根据业务的需要来自定义boot

sunscheung的博客 2277

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

ffmpeg 4.4 cenc-aes-ctr 加解密 MP4 工程性质分析

Dream_Dynasty的博客 3045

webpack多页应用架构专题系列 2

第二章:实战webpack 怎么打包公共代码才能避免重复? 前言 与单页应用相比,多页应用存在多个入口(每个页面即一个入口),每一个入口(页面)都意味着一套完整的js代码(包括业务逻辑和加载的第三方库/框架等)。 在文章《webpack配置常用部分有哪些?》中,我介绍了如何配置多页应用的入口(entry),然而,如果仅仅如此操作,带来的后果就是,打包生成出来的每一个入口文件都会完整包含所有代

sunscheung的博客 803

SPICE仿真软件:HSPICE_(20).HSPICE仿真结果的后处理

HSPICE仿真结果的后处理是一个多步骤的过程,包括读取结果文件、可视化、分析和导出。通过使用命令行工具、Python脚本和HSPICE内置工具,可以高效、准确地完成这些任务。Python脚本的灵活性和强大的数据分析能力使其成为后处理的理想选择。自动化处理可以显著提高工作效率,减少人为错误,而高级分析方法可以更深入地理解仿真结果,为电路设计提供有力支持。

kkchenjj的博客 1382

关于 SAP UI5 应用 url 中的特殊符号 # 的作用介绍

符号在 SAP UI5 的 URL 中不仅仅是一个分隔符,更是动态路由、状态管理和深链接的关键所在。通过合理使用,开发者可以实现高效、流畅的用户体验,同时保持系统的可维护性和扩展性。通过 SAP UI5 提供的灵活路由机制,企业应用可以轻松实现复杂导航需求,同时为用户提供直观的交互体验。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 412

webpack多页应用架构专题系列 1

第一章:一套配置吃天下 webpack配置常用部分有哪些? 前言 webpack的配置文件是一个node.js的module,用CommonJS风格来书写,形如: module.exports = { entry: "./entry", output: { path: __dirname + "/dist", filename: "bundl

sunscheung的博客 926

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

webpack多页应用架构专题系列 3

第三章:整合第三方工具 教练我要写ES6!webpack怎么整合Babel? 前言 一直以来,我对ES6都不甚感兴趣,一是因为在生产环境中使用ES5已是处处碰壁,其次则是只当这ES6是语法糖不曾重视。只是最近学习react生态,用起babel来转换jsx之余,也不免碰到诸多用上ES6的教程、案例,因此便稍作学习。这一学习,便觉得这语法糖实在是甜,忍不住尝鲜,于是记录部分自觉对自己有用的方

sunscheung的博客 774

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

深度学习工具包 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")

webpack多页应用架构专题系列-一套配置吃天下

http://array_huang.coding.me/webpack-book/ 一步一步解决架构痛点 这系列文章讲什么? 本系列文章主要介绍如何用webpack这一当前流行的构建工具来设计一个多页应用的架构。请注意,本文并非新手教程,着重点更多是在于提供解决问题的思路,而非手把手带你装逼。 作者介绍 本人供职于某互联网物流公司,专职前端,公司虽仍处于创业阶段,但产品线已经拉

兜兜88的博客 881

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

用typescript 写一个webpack多页应用架构

虽然网上有很多webpack多页面相关的内容,但是大部分都很老旧了,用typescript写webpack配置的很基本没有。这里主要是给喜欢typescript的同志提供一点参考。 下面就是正文了 目录结构 ├── build // webpack 配置目录 │ ├── helper // webpack配置中的一些工具函数 │ │ ├── constants.ts │ │ ├── entries.helper.ts │ │ └── template-compiler.helpe

huzzzz的博客 469

React多页应用架构:基于Webpack的工程化实践与性能优化

在现代Web开发中,单页应用(SPA)虽已成为主流,但多页应用(MPA)架构在特定场景下仍具有不可替代的价值。其核心原理在于每个页面拥有独立的HTML和JavaScript入口,通过资源隔离实现极致的首屏加载性能。从技术价值看,MPA不仅对搜索引擎优化(SEO)更为友好,还能提供清晰的代码边界,便于团队协作与渐进式升级。在实际应用场景中,它尤其适合内容展示型网站、营销落地页以及对性能要求极高的项目。本文以Webpack多入口配置和工程化实践为例,深入探讨如何利用React生态构建高性能的多页应用,其中涉及公

weixin_30608503的博客 644

webpack多页应用架构 - 实战webpack

怎么打包公共代码才能避免重复? 前言 与单页应用相比,多页应用存在多个入口(每个页面即一个入口),每一个入口(页面)都意味着一套完整的js代码(包括业务逻辑和加载的第三方库/框架等)。在文章《webpack配置常用部分有哪些?》中,我介绍了如何配置多页应用的入口(entry),然而,如果仅仅如此操作,带来的后果就是,打包生成出来的每一个入口文件都会完整包含所有代码。你也许会说:"咱们以前写页面

兜兜88的博客 686

webpack打包jquery多页_webpack多页面打包实践

前不久从零开始写了一个webpack多页面打包boilerplate(webpack4-boilerplate),方便以后工作可以开箱即用,特此记录下开发过程中的要点。注意:本文不会详细介绍webpack的基础知识,如果完全不会,建议看下我之前写过的基础文章 从零开始搭建一个简单的基于webpack的vue开发环境 从零开始搭建一个简单的基于webpack的react开发环境多页打包的原因首先发...

weixin_29062255的博客 424

webpack多页应用架构系列

webpack多页应用架构系列(一):一步一步解决架构痛点:https://segmentfault.com/a/1190000006843916 webpack多页应用架构系列(二):webpack配置常用部分有哪些?:https://segmentfault.com/a/1190000006863968 webpack多页应用架构系列(三):怎么打包公共代码才能避免重复?:http

一条宝鱼的专栏 546

webpack打包jquery多页_webpack打包多页面的方式

一开始接触webpack是因为使用Vue的关系,因为Vue的脚手架就是使用webpack构建的。刚开始的时候觉得webpack就是为了打包单页面而生的,后来想想,这么好的打包方案,只在单页面上使用是否太浪费资源了呢?如果能在传统多页面上使用webpack,开始效率是否会事半功倍呢?好在众多优秀的前端开发者已经写了许多demo和文章供人学习。我也写了一个小项目,希望对大家学习webpack有帮助。w...

weixin_39912984的博客 413

webpack简单的多页面配置

在开发过程中本来想用写成单页面(spa),但是实际过程中会有分端的逻辑(管理端,用户端等),以及更多其他功能等,所以个人认为单页面开发跟适合展示页面逻辑,在有更复杂的展示或者功能的情况时,spa更适合用来实现一部分的展示功能,所以多页的需求还是必要的,webpack作为前端主流打包工具,也是有必要学习其多页的打包方法 前提是了解了单页面单入口的打包方式 首先基于简单的条件,一定是一看就会的 这...

实心爆米花胡乱说说 2285
上一篇: 【学习笔记javascript设计模式与开发实践(组合模式)----10】
下一篇: webpack多页应用架构专题系列 1
SunsCheung
博客等级 码龄11年 30粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值