Articles of watch

吞噬咖啡手表从不完成错误

我有一个看起来像这样的任务: gulp.task 'scripts', () -> gulp.src(path.scripts) .pipe(coffee({bare: true}).on 'error', gutil.log) .pipe(concat 'app.min.js') .pipe(size()) .pipe(gulp.dest 'public/js') 我的手表是这样的: gulp.task 'watch', () -> gulp.watch path.scripts, ['scripts'] 只要我不试图编译任何错误,手表工作得很好。 如果我有一个错误,但在我看来,手表仍然在运行,但毫无价值地等待着某件事。 如果没有错误,我得到这样的东西: [18:02:47] Starting 'scripts'… [18:02:47] all files 1.05 kB [18:02:47] Finished 'scripts' after 17 ms 但如果是一个错误,我只是吞下去: [18:03:33] Starting 'scripts'… 它永远不会结束,即使控制台认为它正在运行,手表也不再工作。 build议?

Node.js通过scp监视传入存档的目录

我有一个任务来创build一个node.js脚本,在目录中侦听新的档案文件到达并处理它们。 我看到我可以用fs.watch做到这一点。 这些文件是tar.gz档案,通过scp到达。 问题是新的档案文件的到达似乎在文件系统中创build了多个(确切的数字是不可预知的)事件。 首先是rename ,然后是一些change事件。 当存档完成传输时,我只需要可靠地触发我的处理逻辑一次。 如何才能做到这一点? 补充笔记: 我无法对发送存档的系统进行更改,只有系统接收它。 我不考虑使用时间来猜测SCP事件已经结束。 这是不可靠的。

Gulp – 改进捆绑的js文件的gulp.watch的性能

当我对js文件进行更改时,我遇到了浏览器livereloading的性能问题。 在我的咕噜设置,我有以下手表: gulp.task('watch', function() { gulp.watch(config.paths.html, ['html']); gulp.watch(config.paths.js, ['js', 'lint']); gulp.watch(config.paths.css, ['css']); }); 因此,每当js文件发生变化时,就会触发js和lint任务。 他们如下: gulp.task('js', function() { browserify(config.paths.mainJs) .transform(reactify) .bundle() .on('error', console.error.bind(console)) .pipe(source('bundle.js')) .pipe(gulp.dest(config.paths.dest + '/scripts')) .pipe(connect.reload()); }); gulp.task('lint', function() { return gulp.src(config.paths.js) .pipe(lint({config: 'eslint.config.json'})) .pipe(lint.format()); }); 有了这个设置, js文件更改的实时重新加载不会扩展。 随着项目越来越大,实时重新加载需要更长的时间。 即使是一个有大约十几个JS文件的小项目,每次重新载入也需要3.8秒。 我知道问题在于,在每个js文件更改时,都会重新激活和捆绑项目中的每个js文件,这是一项昂贵的操作,对于除了您更改的js文件以外的所有js文件都是完全冗余的。 什么是更好的方式来处理实时重新加载? 我知道webpack使用热模块重新加载,有没有这样的gulp等值?

节点js,生成dist文件夹,html页面包含链接不工作

我在我的项目中使用node.js + angular js,我生成dist并从服务器上的dist文件夹运行。 本地我使用gulp手表和运行localhost:9000端口没有产生dist和它的工作正常,但是当我上传在服务器上,它从dist获得,包含的链接不工作。 我包括链接自动完成谷歌地方是链接https://maps.googleapis.com/maps/api/js?libraries=places 我怎样才能解决这个问题?

启动Node.js服务器W / GULP“连接”rest实时刷新(Angular应用W / HTML5模式)

我试图解决一段时间以来困扰我的问题。 场景: 问题是当我用Gulp启动我的本地服务器W / Live Reload。 它启动我的Angular应用程序就好了,但是当我更改文件Live Reload(页刷新)打破我的应用程序,并给了我一个“无法获得”,因为我的server.js(节点服务器)文件有一个特殊的方式,它redirect用户到我的“index.html”文件。 原因是因为我在Angular应用程序中启用了“HTML5模式”(对于漂亮的URL),我必须在server.js文件中指定它以正常工作。 在我的angular度应用程序里面的“html5 on”之前,一切正常,但是由于特殊的redirect,我的Gulp.js文件没有被正确写入以便知道这一点。 如果我运行“node server.js”,angular度应用程序按预期工作,并刷新页面,这只是在开发时遇到这个问题而烦人。 问题: 我怎样才能写我的gulpfile.js正确运行server.js文件? 有没有更好的方法来写我的server.js文件? 是否可以同时运行多个端口(开发模式和生产模式)? (我遗漏了几个文件夹和文件,使其更容易在眼睛) 文件结构: 根 build立(angular生产应用程序) 前(angular度发展应用程序) gulpfile.js (任务执行者) server.js (节点服务器) Server.js(节点服务器) var express = require('express'); var app = express(); app.use('/js', express.static(__dirname + '/front/js')); app.use('/build', express.static(__dirname + '/../build')); app.use('/css', express.static(__dirname + '/front/css')); app.use('/images', express.static(__dirname + '/front/images')); app.use('/pages', express.static(__dirname + '/front/pages')); […]

与babel.js一起使用gulp-watch

下面是一个Gulp ES6的编译任务。 它工作正常,但我试图用gulp–watch插件replacegulp.watch,以便捕获新文件。 问题是,gulp-watch并没有给我gulp.watch做的callback,我不知道该怎么办。 这是我原来的工作任务: var gulp = require('gulp'), rename = require('gulp-rename'), plumber = require('gulp-plumber'), gprint = require('gulp-print'), notify = require('gulp-notify'), babel = require('gulp-babel'); gulp.task('default', function() { return gulp.watch('../**/**-es6.js', function(obj){ if (obj.type === 'changed') { gulp.src(obj.path, { base: './' }) .pipe(plumber({ errorHandler: function (error) { /* elided */ } })) .pipe(babel()) .pipe(rename(function (path) { path.basename […]

npm脚本nodemon – 监视js和scss文件的更改

我正在尝试设置一个开发环境,只使用NPM,而不使用grunt.js或bower.js。 我遵循这个教程: http : //beletsky.net/2015/04/npm-for-everything.html 我正在使用nodemon来监视我的.js和.scss文件,以查找重新启动节点服务器的更改。 所以在我的package.json文件中,我有脚本 脚本: "watch-js": "nodemon -e js –watch public/js -x \"npm run build-js\"", "watch-sass": "nodemon -e scss –watch public/sass -x \"npm run build-sass\"", "watch": "npm run watch-js & npm run watch-sass" 但是当我运行npm run watch ,只能npm run watch public / js文件。 并且相应地触发构build。 但它不会注意到的文件。 版本: node v0.10.36 nodemon v1.4.1 我还包括一个构build脚本,如果我运行编译sass到CSS,所以我的build-sass脚本应该没问题 "build": "npm […]

在Docker VM中,Gulp-Watch似乎在主机操作系统托pipe的卷上效果不佳

所以我有一个设置,可能像大多数人一样,他们的应用程序代码通过一个单独的卷装入Docker容器。 问题是,如果我运行gulp,特别是gulp-watch,在Docker中监视文件修改等,在docker容器中安装的应用程序代码中,根据需要正确地构build和重新启动docker容器内的节点,似乎以获得CPU密集型(如轮询文件更改,而不是侦听文件更改事件)到我的机器扣的点。 我认为这是由于文件系统从本地主机装载到docker集装箱的限制,但人们如何解决这个问题呢? 他们是否在集装箱内完成所有的工作? 本地主机,然后不断build设? 或者我错过了我的设置不正确的地方使用gulp-watch / nodemon?

Docker开发工作stream与node.js

我正在尝试使用一个node.js Web应用程序的泊坞窗我正在努力。 我已经熟悉了docker的概念,并在这里使用示例运行: https : //docs.docker.com/examples/nodejs_web_app/ 我得到一般的过程…写一个Dockerfile – >build立一个docker镜像 – >在虚拟机上运行它。 但是,每次更改文件时重build映像并重新启动容器似乎都不切实际。 我现在有一个吞咽/活重装设置,对于开发非常有用,所以我想知道是否有任何推荐的方式来完成这样的事情与docker。 谢谢!

grunt watch任务阻止命令行

我是新来的,还在学习,所以我遇到了一个很奇怪的问题。 当我运行"watch"任务时,我的命令行被阻塞,所以基本上我无法做任何事情。 不要忘记,任务是成功完成的。 这是我的命令行输出: C:\server\css-test>grunt w Running "watch" task Waiting…OK >> File "compass-examples-master\02\sass\screen.scss" changed. Running "compass" (compass) task unchanged compass-examples-master/02/sass/ie.scss unchanged compass-examples-master/02/sass/print.scss overwrite compass-examples-master/02/stylesheets/new/sass/screen.css Running "watch" task Completed in 1.496s at Fri Mar 22 2013 19:31:37 GMT+0100 (Central Europe Standard Time) – Waiting… 正如你所看到的,我所做的就是运行"compass"任务,它成功完成。 插入点在Waiting…文本部分后保持闪烁,但键盘input不起作用。 我的咕噜configuration module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), compass: […]