grunt学习笔记八:插件(补)

Grunt插件:grunt-px2rem的响应式设计转换实战 像素(Pixel,简写px)是数字屏幕上组成图像的最基本的单位。每个像素代表屏幕上的一个小方块,它能够显示颜色或灰度。从技术发展角度来看,px单位与早期的显示器技术紧密相关,最初是由CRT显示器的栅格点发展而来。在那个时候,像素就代表着显示设备能够控制的最小显示单元。随着移动设备的普及和屏幕分辨率的不断提高,px单位的使用变得更为复杂。不同设备的屏幕尺寸和分辨率差异巨大,导致同一尺寸的px在不同设备上的显示效果截然不同。 阅读详情
1.安装yeoman: npm install -g yo
2.安装自动生成插件模板的generator:
  方案①npm install -g generator-gruntplugin
  方案②按照提示,选择你需要generator: gruntplugin
3.新建目录存放创建的插件: mkdir xxx   
4.切换到你新建的目录:cd xxx
5.创建插件模板:yo gruntplugin
  按照提示完成基本信息就可以了,会有如下目录结构
  - tasks/
  - test/
  - .editorconfig
  - .gitignore
  - .jshintrc
  - Gruntfile.js
  - README.md
  - package.json
 插件的代码在 tasks/ Test.js文件中,文件名是你在之前填写的插件名
 Gruntfile主要定义的是测试任务,默认情况下有两个测试,并且执行grunt不会出错
Keil5保姆级安装指南:从破解到STM32开发环境配置(附常见错误解决方案) 本文提供Keil5从安装到STM32开发环境配置的完整指南,包含破解步骤、常见错误解决方案及多芯片支持配置。详细讲解环境预检、核心安装、许可证管理及高效开发环境设置,帮助开发者快速搭建嵌入式开发平台。特别针对安装和卸载过程中的关键问题提供专业解决方案。 阅读详情

相关推荐

GPU微架构演进分析--从SIMT到Scalar-Vector-Tensor计算的混合配比与调度

GPU架构经历了从专用计算模块到统一可编程处理器的演进。传统GPU面临专用电路配比难题,Nvidia Tesla架构通过引入可编程多线程处理器实现图形与计算的统一。Fermi架构进一步向计算倾斜,随后的架构陆续加入Tensor Core等专用单元。AI时代促成了从图形处理主导向AI计算的转变,形成了Scalar+Vector+Tensor的混合计算范式。SIMT调度重要性降低,CUDA面临新挑战,RISC-V等架构可能带来新机遇。

ChipCamp的博客---https://chipcamp.blog.youkuaiyun.com/ 915

使用Grunt完成项目的基本步骤

使用Grunt完成项目的基本构建 首先使用新建文件存放我们的Grunt mkdir grunt-sample 然后切换到当前目录 cd grunt-sample 继续我们要在我们文件夹初始化我的package.json文件 yarn init --yes 再次安装下我们用到的grunt模块 (稍等片刻) yarn add grunt 在当前目录下新建一个gruntfile.js 文件 用来(grunt的入口文件) 使用grunt 的插件主要有几个步骤: 把找到插件将插件安装在我们的node_mo

weixin_43956521的博客 281

android10 部分机型(华为)无法正常更新安装app

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file://storage/emulated/0/文件夹名/***.apk typ=application/vnd.android.package-archive }

森森先生的博客 3927

grunt学习笔记七:插件安装

1.安装yeoman: npm install -g yo 2.安装自动生成插件模板的generator:   方案①npm install -g generator-gruntplugin   方案②按照提示,选择你需要generator: gruntplugin 3.新建目录存放创建的插件: mkdir xxx    4.切换到你新建的目录:cd xxx 5.创建插件模板:yo g

CodingDoubleB的专栏 429

自适应动态规划硕士博士论文学习

强化学习关注随机过程中的序贯决策问题,而自适应动态规划关注动态系统的控制问题。吸引域:系统渐近稳定的区域。

DarlingLSA的博客 1425

BUUCTF--[OGeek2019]babyrop

才学习了基本的ROP流程,到处找题练,不过也没做出来几道题,以这道32位的题作为例题吧。 这道题是BUUCTF上pwn练习题里的[OGeek2019]babyrop。 代码审计 老规矩先checksec一下: 没有canary保护,nx保护开启排除shellcode可能性,FULL RELEO为地址随机化。 观察主函数,先设定了一个闹铃,到时间就会强制退出程序,解除闹铃的方法在上一篇博客中提到过了, 这道题中闹铃函数依然对我们解题起不到什么干扰作用。 主函数的思路大概是:生成一个随机数,把这个随机数作为

N1rvana的博客 6005

grunt学习(二)——安装grunt及其插件

Gruntjs是JavaScript项目的构建工具,也是基于node的一个命令行工具。很多开源JS项目都是使用它搭建。如jQuery、Qunit、CanJS等。它有以下作用 ·合并JS文件 ·压缩JS文件 ·单元测试(基于QUnit) ·一句话:完全自动化(automation) 以下是它的安装过程。 一、安装node 参考nodejs入门(最新的node会自动安装npm) ...

kuyuyingzi的专栏 408

DSP TMS320C6657中FFT函数的调用与具体使用方法

首先明确一点,C6678中FFT的函数形式为: N : length of FFT in complex samples ptr_x : pointer to complex data input ptr_w : pointer to complex twiddle factor ptr_y : pointer to complex output data brev : pointer to bit reverse table containing 64 entries n_min : should be

Kayboy的博客 3012

grunt-contrib-copy 终极指南:掌握 Grunt 文件复制插件的10个核心技巧

🚀 欢迎来到 grunt-contrib-copy 的终极指南!如果你正在寻找一个简单而强大的 Grunt 文件复制插件,那么你来对地方了。grunt-contrib-copy 是 Grunt 生态系统中最受欢迎的插件之一,专门用于高效地复制文件和文件夹。无论你是前端开发新手还是经验丰富的开发者,掌握这个插件都能让你的工作流程更加顺畅。 ## 📋 文章概览 | 章节 | 内容简介 | |-

gitblog_00520的博客 1083

基于STM32+华为云IOT设计的云平台监控系统_102

本次设计结合现代生活的具体需求,设计出一套基于华为云IOT设计的云平台监控系统,可以远程实时查看家里光照强度、温湿度等信息,支持在云端控制家里的电器设备,实现远程控制。

7643

流体动力学仿真软件:XFlow_(20).案例研究:声学仿真

在流体动力学仿真软件中,声学仿真是一个重要的应用领域。通过数值模拟,工程师和科研人员可以预测和分析流体系统中的声学现象,如气动噪声、声波传播和声场分布。这些仿真结果对于优化设计、降低噪声水平和提高系统性能具有重要意义。本节将详细介绍如何在流体动力学仿真软件中进行声学仿真,包括声学模型的选择、参数设置、后处理分析等内容,并通过具体的案例来说明这些步骤。

kkchenjj的博客 902

grunt 插件_从Grunt测试Grunt插件

grunt 插件 编写针对grunt插件的测试结果比预期的要简单。 我需要运行多个任务配置,并想通过在主目录中键入grunt test来调用它们。 在第一个任务失败后,咕声通常会退出。 这使得不可能在主项目gruntfile中存储多个失败方案。 从那里运行它们将需要--force选项,但是grunt会忽略所有不是最佳的警告。 较干净的解决方案是在单独的目录中有一堆gruntfile,然...

最佳 Java 编程 321

SAE ARP 4761A内容详解

SAE ARP 4761A主要为民用航空系统及设备的安全评估提供指南,帮助制造商和设计者满足FAA的FAR 25.1309等适航标准的要求。该文档旨在为航空器和航空系统设计中涉及的安全评估流程提供一个结构化的框架,并结合一系列工具和方法,如故障树分析(FTA)、依赖图分析(DD)、马尔可夫分析(MA)等,来系统地评估潜在的安全隐患。这一标准不仅适用于大型航空器的设计和评估,还可以应用于各种类型的飞行系统,如无人驾驶飞行器(UAV)和新型的电动垂直起降飞机(eVTOL)。

qq_41854911的博客 3149

grunt教程-安装grunt

首页 » 博客 » Airen的博客 Grunt教程——安装Grunt 作者:大漠 日期:2013-11-04 点击:546  在上一节《Grunt教程——初涉Grunt》一文中介绍了Grunt是什么,今天我们主要一起来学习和探讨Grunt如何安装。俗话说,巧妇难为无米之炊,要想正常的使用Grunt,首要条件你要在自己的电脑环境中具备运行Grunt的环境。

一名普通码农的菜地 4308

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

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

grunt-contrib-copy 与其他 Grunt 插件的协同工作指南:打造高效前端构建流程

如果你正在使用 Grunt 作为前端构建工具,那么 `grunt-contrib-copy` 插件绝对是你工具箱中不可或缺的一员。这款强大的文件复制工具不仅能够高效地处理文件复制任务,还能与其他 Grunt 插件完美协同工作,构建出完整的前端工作流。本文将为你详细介绍如何将 grunt-contrib-copy 与其他 Grunt 插件结合使用,打造高效的构建流程。🚀 ## 什么是 grunt

gitblog_00316的博客 709

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Grunt插件安装

Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器。 Grunt 0.4.x 必须配合 Node.js >= 0.8.0 版本使用。 在安装 Grunt 前,请确保当前环境中所安装的 npm 已经是最新版本,执行 npm update -g npm 指令进行升级(在某些系统中可能需要 sudo 指令)。 如果你已经安装了 Grunt,现在需要参考...

Pandora_417的博客 764

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

grunt-nodemon: 简化Node.js开发流程的Grunt插件

grunt-nodemon: 简化Node.js开发流程的Grunt插件 项目简介 grunt-nodemon是一个专为Grunt设计的插件,旨在简化Node.js应用程序的开发过程,通过自动监视文件变更并重新启动Node进程,从而极大提升了开发效率。尽管该项目当前不再处于活跃维护状态,但它依旧为那些寻求便捷开发环境的开发者提供强大的功能。 1. 项目目录结构及介绍 典型的grunt-nodemo...

gitblog_00435的博客 670

grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

🚀 **grunt-concurrent** 是一款强大的Grunt插件,专门用于并行运行Grunt任务,显著提升构建速度!如果你正在使用Grunt进行前端构建,但感觉构建过程太慢,那么grunt-concurrent就是你的救星。这个简单的工具能让你的CoffeeScript编译、Sass编译、JSHint检查等任务同时进行,而不是一个接一个地等待。 ## ✨ grunt-concurren

gitblog_01055的博客 964

从Gulp中调用Grunt任务:gulp-grunt插件推荐

从Gulp中调用Grunt任务:gulp-grunt插件推荐 在现代前端开发中,Gulp和Grunt是两个非常流行的构建工具。然而,有时我们可能会遇到这样的情况:某个Grunt插件在Gulp中尚未有对应的实现。这时,gulp-grunt插件就能派上用场了。本文将详细介绍gulp-grunt插件,帮助你更好地理解和使用它。 项目介绍 gulp-grunt是一个Gulp插件,允许你在Gulp任务中调用...

gitblog_00873的博客 318

从Grunt测试Grunt插件

编写针对grunt插件的测试结果比预期的要简单。 我需要运行多个任务配置,并想通过在主目录中键入grunt test来调用它们。 通常,第一个任务失败后会发出咕声。 这使得不可能在主项目gruntfile中存储多个失败方案。 从那里运行它们将需要--force选项,但是grunt会忽略所有不是最佳的警告。 较干净的解决方案是在单独的目录中有一堆gruntfile,然后从主项目grun...

最佳 Java 编程 228

Grunt构建性能优化:使用grunt-concurrent实现任务并行化的10个技巧

在前端开发过程中,随着项目规模扩大,Grunt构建任务往往变得越来越慢。**grunt-concurrent**作为一款强大的Grunt插件,能够通过并行执行任务显著提升构建速度。本文将分享10个实用技巧,帮助你充分利用grunt-concurrent优化构建流程,让开发效率翻倍! ## 1. 快速安装与基础配置 首先确保你的项目中已安装Grunt,然后通过npm安装grunt-concurr

gitblog_01129的博客 782

如何将grunt-concurrent集成到现有Grunt工作流:完整迁移方案

grunt-concurrent是一款强大的Grunt插件,能够帮助开发者并行运行多个Grunt任务,显著提升构建效率。本文将详细介绍如何将grunt-concurrent无缝集成到现有Grunt工作流中,通过简单的配置实现任务并行化,让你的构建过程更快、更高效。 ## 为什么选择grunt-concurrent? 在传统的Grunt工作流中,任务通常是串行执行的,这意味着每个任务必须等待前一

gitblog_00031的博客 853

Grunt 插件:grunt-contrib-compress 介绍

Grunt 插件:grunt-contrib-compress 介绍 grunt-contrib-compress 是一个 Grunt 插件,主要使用 JavaScript 编程语言。该插件的主要功能是压缩文件和文件夹,支持多种压缩格式,如 zip、tar、gzip 等。 项目基础介绍 grunt-contrib-compress 是 Grunt 的一个官方插件,用于在 Grunt 工作流程中对文...

gitblog_00767的博客 576

grunt_从Grunt测试Grunt插件

grunt 编写针对grunt插件的测试结果比预期的要简单。 我需要运行多个任务配置,并想通过在主目录中键入grunt test来调用它们。 通常,第一个任务失败后会发出咕声。 这使得不可能在主项目gruntfile中存储多个失败方案。 从那里运行它们将需要--force选项,但是grunt会忽略所有不是最佳的警告。 较干净的解决方案是在单独的目录中有一堆gruntfile,然后从主项目gr...

cunfen9460的博客 287

Babel 的 Grunt 插件:grunt-babel

Babel 的 Grunt 插件:grunt-babel grunt-babel 是一个 Grunt 插件,用于在 Grunt 工作流程中集成 Babel,将下一代 JavaScript 代码转换成当前环境可运行的代码。该项目主要使用 JavaScript 编程语言。 基础介绍 Babel 是一个广泛使用的 JavaScript 编译器,它允许开发者使用最新的 JavaScript 语法编写代码,...

gitblog_00712的博客 292

Grunt-CLI高级技巧:如何自定义命令与集成第三方插件

Grunt-CLI作为Grunt的命令行界面工具,是前端工程化中不可或缺的利器。本文将分享Grunt-CLI的高级使用技巧,帮助开发者轻松掌握自定义命令与集成第三方插件的方法,提升前端开发效率。 ## 一、Grunt-CLI基础配置指南 要开始使用Grunt-CLI,首先需要确保正确安装。通过npm可以轻松完成安装: ```bash npm install -g grunt-cli ```

gitblog_00548的博客 937
上一篇: grunt学习笔记七:插件安装
下一篇: grunt学习笔记九:新建project
JhonPang
博客等级 码龄12年 0粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值