CURL错误列表 curl_exec($ch);//执行curl if (curl_errno($ch)) { echo 'Curl error: ' . curl_error($ch);//出错输出错误...} curl_close($ch);//关闭curl 同理,像正则,Json,数据库这些出错时基本都会有提供有帮助的错误信息 CURL状态码列表 状态码 状态原因 解释 0 正常访问 1 错误的协议...并非所有的FTP 服务器支持PORT 命令,请 尝试使用被动(PASV)传输代替! 31 FTP错误 FTP 无法使用REST 命令。REST 命令失败。此命令用来恢复的FTP 传输。...指定的外发接口无法使用。 47 过多的重定向 过多的重定向。cURL 达到了跟随重定向设定的最大限额跟 48 无法识别选项 指定了未知TELNET 选项。...56 衰竭接收网络数据 在接收网络数据时失败。 57 58 本地客户端证书 本地证书有问题。 59 无法使用密码 无法使用指定的SSL 密码。
今天突然想起之前的一个网站博客,感觉还不错,但它是zblogasp的,所以想移植到zblogphp版本,但是把网站数据恢复之后登陆后台显示,数据库连接出错,因为asp+access类型,目录位置都对,所以可能是...为了验证这一理论,重新下载zblogasp2.2版本重新安装,左侧显示无法使用Access数据库,但服务器本身支持access数据库,找了下原因,是因为微软要放弃access了,所以就没开发access...win7是64位,同样也不能支持access,简单说下怎么解决windows2008r2-64位系统-支持access数据库问题: 首先打开IIS管理器,查看网站的高级属性: 应用程序池选项,记住当前使用的应用程序池名称...也可以在这里直接修改使用的应用程序池。...强调一下,无论使用哪个应用程序池都是可以成功启用Access的返回,点击左边应用程序池节点,查看刚才使用的应用程序池的高级属性(这里是DafaultAppPool) ?
而gulp呢,是基于stream流的形式,也就是前一个函数(工厂)制造出结果,提供后者使用。 同样的,也是包括基本用法和各插件的使用。...二、基本用法--插件使用 gulp所支持的插件也是很多的,使用方式跟基本的nodejs差不多。...原本打算直接用src的形式,没料到会出错,难道是 gulp-ruby-sass 不支持这种写法? ? ?...: gulp.task('clean', function(cb) { del(['dist/assets/css', 'dist/assets/js', 'dist/assets/img'],...cb) }); 当然,gulp任务的执行是异步的,也就是说,任务之间的执行没有先后之分,若想保证执行顺序 只好定义依赖关系(如上述参数二的依赖) 或者使用Promise对象实现,回调函数的使用,参考
写作背景 Gulp 在编写时和其他构建工具的最大区别就是 Gulp 基于编码而非配置,编码的基础单元又是任务,在上一节学习后我们就可以先一个任务了,那么这一节就详细了解一些任务再 Gulp 中的重要作用吧...任务: 在 Gulp 中任务按访问的形式可以分为公开任务和私有任务,在使用 gulp 执行构建时读取的就是公开任务列表,所以说我们需要通过 gulp 命令来执行的时候就需要将这个任务导出,就代码这个任务是公开的了...通过下面的代码示例来看一下按访问形式划分的任务: const { series } = require('gulp'); function clean(cb) { // body omitted...注:代码内容来自 gulp 官网;在以前的版本 gulp 是允许使用task 函数来注册任务的,同样这个特性也有保留,以便我们在无法使用导出模块的语法的特殊状况下使用。...); 注:代码内容来自 gulp 官网; 下面的代码演示了并行任务的组合方式: const { parallel } = require('gulp'); function javascript(cb
刚开始想实现浏览器 F5 自动刷新使用到的是 grunt 和 livereload 插件,gulp 也有对应的方法,参考 gulp 教程之 gulp-livereload。...基于 gulp 的前端构建 之前使用 Grunt 时总结了一篇「基于 Grunt 的前端构建」。...在使用了 Grunt 的一段时间后,我发现了 gulp 的运行速度比 Grunt 快很多,于是便从 Grunt 转移阵地到了 gulp。以下的构建思路跟 Grunt 的构建很类似。...如果你也使用过 Grunt,那我相信你一定能够很快地切换到 gulp。当然如果你没有接触过 Grunt,我相信你一定也能够很快上手 gulp。...当然在同时开上多个浏览器测试页面时它将会很有帮助。
则使用gulp-babel,这一方案在压缩部分使用了 ES6 的 js 以后,由于强制降级导致变量生命周期的变动,会引发一系列迷之 bug,需要手动再去添加屏蔽项以选择不压缩对应的 js。...事实上,当我们使用jsdelivr的CDN服务时,只需要在css或者js的后缀前添加.min, 例如example.js->example.min.js,JsDelivr就会自动使用terser帮我们压缩好代码...); }); }); // 运行gulp命令时依次执行以下任务 gulp.task('default', gulp.parallel( 'compress', 'minify-css', '...); }); }); // 运行gulp命令时依次执行以下任务 gulp.task('default', gulp.parallel( 'compress', 'minify-css', '...而本地测试时,如果没有运行 gulp,自然也就不会输出压缩字体包到 public 目录,也就看不到字体样式。
(clean, javascript)); 注:上面的代码来自 gulp 官网; 在文件监控关联的任务更需要注意禁止使用同步任务,同步任务无法确定任务的完成情况,无法在文件变动后再次触发。...函数提供的第二个参数 events 将允许我们配置对应的事件,事件列表如:'add'、'addDir'、'change'、'unlink'、'unlinkDir'、'ready'、'error',另外监控全部的事件可以使用...const { watch } = require('gulp'); // 关联的任务(task)将在启动时执行 watch('src/*.js', { ignoreInitial: false },...function(cb) { // body omitted cb(); }); 注:上面的代码来自 gulp 官网; 队列应用: gulp 默认在每次文件变化后都将触发关联任务的执行,短时间内的多次文件变化会将每个任务排队等待依次执行...function(cb) { // body omitted cb(); }); 注:上面的代码来自 gulp 官网; 延迟应用: watch 函数的参数 2 选项支持配置 delay 指定毫秒数来延迟在文件变化后触发关联任务的事件
使用webpack编写编译脚本时就是按webpack的规则进行各种配置,必须完全遵守它的条条框框,明明是自己写nodejs代码进行编译,但完全可控感。...之前就听说过gulp+browserify的组合,这次就尝试使用这个东东重写编译脚本。话不多说,直接上最后的成果。...前端编译js时使用了gulp、babel、browserify、babelify,编译css时使用了less,使用gulp-connect作为开发服务器。...watch:这个task启用监听源代码中的文件变更,当发现文件变更时,进行相应的编译处理。同时监听编译目录下的文件变更,当发现变更时,通过浏览器刷新页面。...其它 最后分享一下我做了一个工程脚手架,前端使用react+redux, 前端编译使用gulp+browerify+babel, 后端使用springmvc+spring+MyBatis,项目地址http
express做的),一时间,没有找到适合的插件,于是我萌生了自己开发一下gulp插件的想法。...开发流程 参考了几篇博客 Gulp插件制作指南 Gulp:插件编写入门 先来看一下插件的全部代码 'use strict'; var gutil = require('gulp-util'); var...pp] + '/'; } pattern.push(odir); } return through.obj(function (file, enc, cb...那么 replace() 就会执行两次,两次传入的 file 分别是 1.txt和2.txt, 而不是两个文件一起传进来 使用 npm install gulp-url-replace --save-dev...var gulp = require('gulp'); var replace = require('gulp-url-replace') gulp.task('move', function(){
原来用的React+Webpack时,那种同步压缩修改、实时动态刷新页面的感觉真的太棒了。...但如果使用Express+ejs+less的话,配置webpack非常繁琐,所以,一番折腾后,于是有了Express+Less+Gulp的配置方案,效果见下图,项目地址:https://github.com.../ycjcl868/Express_Gulp [image.gif] 目的 我使用Express+Ejs+Less开发,想开发时对所有资源进行压缩并同步到浏览器端,Google搜索一遍,都不是太符合我的项目要求.../views/*'], cb) }); // 压缩ejs gulp.task('ejs', function() { return gulp.src('views/**/*.ejs').../ 目录下所有文档,有更新时强制浏览器刷新(需要浏览器插件配合或按前文介绍在页面增加JS监听代码) gulp.watch(['public/dist/**']).on('change', function
配置教程 安装gulp插件 npm install --global gulp-cli #全局安装gulp指令集 npm install gulp --save #安装gulp插件 安装各个下属插件以实现对各类静态资源的压缩.../public')) }); //压缩字体 function minifyFont(text, cb) { gulp .src('..../public/fontsdest/')) //压缩后的输出目录 .on('end', cb); } gulp.task('mini-font', (cb) => { var buffers...end', function() { var text = Buffer.concat(buffers).toString('utf-8'); minifyFont(text, cb...); }); }); // 运行gulp命令时依次执行以下任务 gulp.task('default', gulp.parallel( 'compress', 'minify-css', '
搭建一个简单的前端应用 相比较webpack,其实gulp的项目结构更偏向传统的应用,只是我们借助gulp工具解放我们的一些代码压缩、es6编译、打包以及在传统项目中都可以使用less体验。...= (cb) => { console.log('hello gulp') cb(); } exports.default = defaultTask; 然后我们在命令行执行 npx gulp...-- endinject --> 当我们运行npx gulp seriseTask时 创建本地服务 我们需要将前面所有的js,css,html组织起来,在本地服务中使用...用gulp写了一个简单的应用,但是发现中途需要找好多gulp插件,gulp的生态还算可以,3w多个star,生态相对丰富,但是有些插件常年不更新,或者版本更新不支持,比如gulp-image,当你按照官方文档使用最新的包时...即使项目时间再多,也不要用gulp搭建前端应用,因为webpack生态很强大了,看gulp的最近更新还是2年前,但是写个自动化脚本,还算可以,毕竟gulp的理念就是用自动化构建工具增强你工作流程,也许当你接盘传统项目时
)) .on('end', () => { console.log('format: 去除空行完成'); }) })) 创建监听任务 当20201108文件夹下的文件有写入操作时,...parallel gulp.watch('./20201108/*.txt', gulp.series('format', (cb) => { cb(); })).on('change',...例如上面的例子(文件去除空行任务),单独封装一下,使用的时候就是一个简单的插件 // gulp-file-format.js module.exports = () => { return through2...,比webpack的插件简单多了 下面讲一个日常中对于重复工作提效写的一个脚本,讲讲思路,让大家对gulp的使用场景有个更深的理解。...gulp.series('export', 'concat', 'money', (cb) => { //... })) 执行命令 $ gulp total 以上任务都可以独立执行,也可以合并执行
而我们采用的是腾讯云HBase,使用的版本是2.2.0版本,我们在使用Phoenix-5.0版本时,发现系统报错,无法正常使用。...其实Phoenix-5.0版本已经两年多没有更新了,而Hbase还在不断演进,越来越多的人使用Hbase2.0以上版本,这个问题会越来越突出,我们跟踪发现,只要做些简单处理,Phoenix-5.0就可以支持...使用过程中,发现后台报错: Caused by: java.lang.VerifyError: class org.apache.phoenix.hbase.index.covered.data.IndexMemStore
,不会匹配 xy.js 、 xyz.js 等,整个中括号只代表一个字符 xyz.js 能匹配 a.js 、 b.js 、 c.js 等,不能匹配 x.js 、 y.js 、 z.js 当有多种匹配模式时可以使用数组...// 使用数组的方式来匹配多种文件 gulp.src(['js/*.js','css/*.css','*.html']) 使用数组的方式还有一个好处就是可以很方便的使用排除模式,在数组中的单个匹配模式前加上...); 关于 gulp.task() ,我们需要知道执行多个任务时怎么来控制任务执行的顺序。...gulp.task("one", function(cb) { //cb为任务函数提供的回调,用来通知任务已经完成 //one是一个异步执行的任务 setTimeout(function()...glob 和 opts 参数与第一种用法相同 cb 参数为一个函数。
var gulp = require('gulp'); gulp.task('one', function(cb){ //cb为任务函数提供的回调,用来通知任务已经完成 setTimeout(...当有多个匹配模式时,该参数可以为一个数组。 @param {array} options 通常情况下我们不需要用到。 Gulp内部使用了node-glob模块来实现其文件匹配功能。...当有多种匹配模式时可以使用数组: //使用数组的方式来匹配多种文件 gulp.src(['js/*.js','css/*.css','*.html']) 使用数组的方式还有一个好处就是可以很方便的使用排除模式...','reload']); gulp.watch()还有另外一种使用方式: gulp.watch(glob[, opts, cb]) glob和opts参数与第一种用法相同 @param {function...前面提到的gulp.dest()方法写入文件时,文件名使用的是文件流中的文件名,如果想要改变文件名,就需要用gulp-rename插件来改变文件流中的文件名。
gulp.task()这个API没什么好讲的,但需要知道执行多个任务时怎么来控制任务执行的顺序。...gulp.task('one',function(cb){ //cb为任务函数提供的回调,用来通知任务已经完成 //one是一个异步执行的任务 setTimeout(function(){...()还有另外一种使用方式: gulp.watch(glob[, opts, cb]) glob和opts参数与第一种用法相同 cb参数为一个函数。...用gulp.dest()方法写入文件时,文件名使用的是文件流中的文件名,如果要想改变文件名,那可以在之前用gulp-rename插件来改变文件流中的文件名。...--save-dev gulp-minify-css 要压缩css文件时可以使用该插件 var gulp = require('gulp'), minifyCss = require("gulp-minify-css
目标 在使用微应用中, 通常子应用都是基于一套技术栈开发。其中就包括ui组件,很多二次封装组件需要在各个子应用中使用到。 所以将这些公共组件独立出来,作为第三方库使用。...这部分需要我们自己动手生成, 参考 antdv iview 我们使用 gulp 实现相关功能 // pakcage.json { // 新增打包命令 "script": { // 统一构建任务...) exports.default = gulp.series(clean, buildLib, compi vue.config.js 构建业务组件时, 难免需要依赖其他第三方或自定义包,而这些包,可能已经包含在应用依赖中...所以打包时需要屏蔽相关依赖包。...vue-cli 的预设配置打包出自己的ui组件库, 使用gulp导出类型定义。
关于 gulp 的基本使用方法前面有介绍。 Gulp使用指南 昨天,朋友问我一个问题。...其实主要用到的就是 gulp-rev 和 gulp-replace 这两个插件。...const gulp = require('gulp'); const rev = require('gulp-rev'); const del = require('del'); const replace...= require('gulp-replace'); // 清空打包目录 gulp.task('c', function (cb) { del( [ // 这里我们使用一个通配模式来匹配...`mobile` 文件夹中的所有东西 'dist/*', ], cb ); }); // 生成带有 hash 的js gulp.task( 'js', ()
node会与我当前gulp的版本会有冲突,所以务必确保npm版本要低于11,可以使用nvm进行node的版本管 理确保你可以自由的切换node版本。...当重复操作过多的时候,就适合使用自动化让项目变得灵活一些。...*/ const gulp = require('gulp') const through = require('through2') const rename = require('gulp-rename...// eslint-disable-next-line no-param-reassign file.contents = Buffer.from(final) return cb...最后 类似的方法也不止这一种,也可以使用node的读写流进行操作,webpack也有提供获取上下文的api,如require.context等。 如果文章对你有帮助,还望不吝三连~
领取专属 10元无门槛券
手把手带您无忧上云