Articles of gulp

Node.js – 自动刷新在Dev

我正在尝试改进我的节点中的DEV经验。 要做到这一点,我想: a)当服务器端代码改变时重启我的服务器 b)当客户端代码改变时刷新浏览器。 为了做到这一点,我开始将nodemon和browserSync集成到我的gulp脚本中。 在我的gulp脚本中,我有以下任务: gulp.task('startDevEnv', function(done) { // Begin watching for server-side file changes nodemon( { script: input.server, ignore:[input.views] }) .on('start', function () { browserSync.init({ proxy: "http://localhost:3002" }); }) ; // Begin watching client-side file changes gulp.watch([ input.css, input.js, input.html ], function() { browserSync.reload(); }); done(); }); 当上述任务运行时,我的浏览器打开到http:// localhost:3000 / 。 我的应用程序是可见的预期。 但是,在控制台窗口中,我注意到: […]

在Gulp / Node中运行jekyll作为一个subprocess

我正在尝试使用Gulp.js构build一个jekyll站点。 我读过,我不应该在这个问题上使用插件。 我一直在调查build议使用subprocess,但我不断收到错误: events.js:72 throw er; // Unhandled 'error' event ^ Error: spawn ENOENT at errnoException (child_process.js:988:11) at Process.ChildProcess._handle.onexit (child_process.js:779:34) 这是我的大文件: var gulp = require('gulp'); var spawn = require('child_process').spawn; var gutil = require('gulp-util'); gulp.task('jekyll', function (){ spawn('jekyll', ['build'], {stdio: 'inherit'}); }); gulp.task('default', ['jekyll']); 我究竟做错了什么? 我在节点0.10.25,赢7。 编辑我以前有一个谷歌ENOENT错误。 已经检查了我的path和Ruby在那里,我可以从命令行运行jekyll。 仍然没有喜乐。

使用没有全局吞噬的gulp //编辑:并且不链接到bin js文件

在命令行inputgulp时,我有一个gulpfile.js,它完美的运行。 所有的gulp bash命令实际上都是在全局安装的gulp的package.json >> bin >> gulp中调用指定的js文件。 现在我想通过inputnode gulpfile.js来运行没有全局安装的node gulpfile.js ,它显然失败了,并且已经经常被提及,尽pipegulp被安装在本地,并且在gulpfile.js开头需要 如果不使用cli工具,使用gulp就可以很容易地将gulp作为其他npm插件的一部分。 注意: 当通过gulp cli工具启动这个原始的gulpfile.js时,需要另一个gulpfile.js从原始的gulpfile.js中工作。 题: 什么是运行/需要吞咽的最佳方式,而不需要全球cli gulp工具(//编辑:或在本地链接)? 例如,当gulp只是本地安装的依赖项时,能够从另一个js文件中简单地请求它。 (换句话说,从JS内部以编程方式启动gulp,而不需要任何CLI的干预)

从VS 2015 Task Runner资源pipe理器运行时,Gulp任务失败,但不是从命令提示符运行

我有一些Gulp任务来为网站做典型的clean , build , release操作。 在我心中没有什么特别的。 (实际上它与Aurelia TypeScript骨架非常相似。) 大多数团队在PowerShell /命令提示符下使用Gulp进行前端开发,并使用VS Code / Sublime进行编辑。 有些团队使用Visual Studio 2015做同样的事情。 从命令提示符运行build任务工作得很好,但是如果我们从Visual Studio的Task Runner Explorer运行它,它会给我们一个错误。 但是,运行其他任务(例如clean )在命令提示符和VS Task Runner Explorer中都可以正常工作。 有趣的是,Task Runner资源pipe理器甚至输出它调用来运行任务的进程的副本。 如果我复制精确的命令(见下文)并在命令提示符下运行它,它不会给出错误。 它只发生在从任务运行资源pipe理器运行,只有一个任务。 以下是Task Runner Explorer中的任务命令行和相关错误输出: cmd.exe /c gulp -b "D:\Development\xxxx\WebSite" –color –gulpfile "D:\Development\xxxx\WebSite\Gulpfile.js" build [20:40:42] Using gulpfile D:\Development\xxxx\WebSite\Gulpfile.js [20:40:42] Starting 'build'… [20:40:42] Starting 'clean'… [20:40:42] Finished 'clean' after […]

检测不需要的function(fdescribe,describe.only)作为Gulp任务

如何在Node中检测代码库中不需要的函数的使用,特别是Gulp? 我正在检查无意中损坏的规格,即ddescribe / fdescribe和iit / fit茉莉花或.only和.skip为摩卡: // should be reported fdescribe(function () { // should not be reported it(function () { var fit = …; this.fit = …; }); // should not be reported // fit(function () { … }); // should be reported xit(function () { … }); // should be reported fit(function () […]

Gulp:如何设置相对于处理文件的dest文件夹(使用通配符时)?

在我的assets/文件夹下,我有许多子文件夹,每个都包含任意数量的图像,如下所示: assets/article1/ assets/article2/ 我正在尝试编写一个gulp任务来查找所有的.jpg图像,并生成缩略图版本,并将其保存在每个文件所在文件夹内的thumbs/子文件夹中: assets/article1/ # original jpg images assets/article1/thumbs/ # thumbnail versions of above.. assets/article2/ assets/article2/thumbs/ 我一直在尝试各种方法,但没有运气。 我最近来的是: gulp.task('thumbs', function () { return gulp.src( './assets/**/*.jpg' ) .pipe( imageResize( { width: 200 } ) ) .pipe( gulp.dest( function( file ) { return file.base + '/thumbs/'; } ) ); }); 但是,这会在assets\的根目录下创build一个thumbs\文件夹assets\ assets/article1/ assets/article2/ assets/thumbs/article1/ assets/thumbs/article2/ 有没有关于path和通配符的很好的信息? […]

我如何强制大量呼叫同步运行?

我希望下面的呼叫电话一个接一个地同步运行。 但是他们不遵循命令。 运行序列节点模块在这里没有帮助,因为我没有尝试运行一系列的gulp.task("mytask", ["foo", "bar", "baz"]任务(即它的语法类似于gulp.task("mytask", ["foo", "bar", "baz"]等),而是如下所示,而是连续地吞下”呼叫“。 gulp.task("dostuff", function (callback) { gulp .src("…") .pipe(gulp.dest("…"); gulp .src("…") .pipe(gulp.dest("…"); gulp .src("…") .pipe(gulp.dest("…"); callback(); }); 我如何让他们一个接一个跑?

节点更新特定的包

我想更新我的浏览器同步而不更新所有节点包 。 我怎样才能做到这一点? 我当前版本的浏览器同步没有浏览器同步GUI 🙁 ├─┬ browser-sync@1.9.2 │ ├── browser-sync-client@1.0.2

在进入下一个任务之前,让大嘴巴同步写入文件

gulpfile.js gulp.task('browser-bundle', ['react'], function() { … }); gulp.task('react', function(){ gulp.src(options.JSX_SOURCE) .pipe(react()) .pipe(gulp.dest(options.JSX_DEST)) }); 正如你所看到的,我有浏览器包的任务取决于反应任务。 我相信这是按预期工作的,因为在输出中我看到: [gulp] Running 'react'… [gulp] Finished 'react' in 3.43 ms [gulp] Running 'browser-bundle'… 但是,尽pipe反应任务已经完成,它应该写入操作系统的文件还没有完成。 我注意到,如果我把一个睡眠声明在浏览器捆绑命令然后它按预期工作,但是这对我来说似乎有点哈克。 如果我希望反应任务不被考虑完成,直到文件(从gulp.dest)被同步写入磁盘,我将如何做?

Gulp – 处理dest文件的只读权限?

我有在源文件夹中设置read-only属性的图像文件。 在大多数情况下,我需要在gulpfile.js中将它们复制到目标文件夹中。 我正在尝试复制src-to-dest文件,如下所示: gulp.task('copy-images', function () { gulp.src(path_resource_images + '**/*.jpg') .pipe(gulp.dest(path_app_images)); }); 它在dest文件夹为空时工作一次。 但是,对于所有接下来的调用,我有一个例外,该文件是read-only在dest文件夹中。 我怎样才能删除文件attr read-only ,使图像复制作品,每次我打电话给它?