问题标签 [gulp-changed]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Gulpfile 仅有效编译已更改的 TypeScript 文件
我正在尝试让 gulp 编译并观看 TypeScript 文件。这是我到目前为止所得到的
我正在使用gulp-typescript。
但是,由于我们有数百个 TypeScript 文件,我不想在其中一个文件发生更改时重新编译所有文件。上面的代码可以做到这一点(我可以说是因为watch-typescript
至少需要和 一样多的时间compile-typescript
)
我试过使用gulp-changed,像这样
这确实过滤掉了未更改的文件。但是随后 typescript 编译器报告错误,因为它只获取一个文件,该文件缺少通常从其他文件获取的类型声明。
我不想将noExternalResolve
标志设置为 true,因为从那时起将不会进行大量类型检查,这首先破坏了使用 TypeScript 的很多原因。
我怎样才能更好地编写这个 gulpfile?
gulp - gulp-changed 不会覆盖具有不同内容的文件
如果我在两个具有不同内容的同级目录中创建两个文件:
然后使用 gulp 将第一个输出到目标文件夹,并尝试用第二个覆盖它,使用Sha1Digest
比较器使用 gulp-changed 进行过滤:
我希望该文件被覆盖,因为源文件中test2
的内容与dst
文件夹中的现有文件不同,但事实并非如此:
有人可以澄清我的误解吗?
node.js - Gulp Changed 不起作用
我以前使用过用我的 JS 更改的 gulp 没有问题。但是现在我试图在我的文件上使用gulp-changed
和而不检测哪个文件已更改。gulp-newer
scss
当更改一个 scss 文件时,它会输出有一个变化,但没有改变任何scss
手表
预期的输出文件存在并且自昨天以来没有更改。
我怎样才能让 scss 只编译更改的文件。
gulp - 如何使 gulp-newer 与 gulp-rev 一起工作?
设置很简单:
gulp-newer 显然在这里不起作用,因为目标文件的名称不同。在这种情况下,任何使 gulp-newer(或 gulp-changed)工作的解决方法?
typescript - 如何使用 gulp-changed 和 gulp-typescript
我正在集成 gulp-changed 以防止所有文件在更改时记录到控制台。这适用于我的 HTML 文件,但我也使用 gulp-typescript 将我的 TypeScript 文件转换为 JavaScript。
我在这里使用 Dan Wahlin 建议的 TypeScript 工作流程。
所以我将 gulp-changed 实现为 gulp-typescript,如下所示:
我的config
对象如下所示:
尽管如此,当我更改单个文件时,所有文件都会被记录。.pipe($.changed(config.dest))
我什至试图在该行之前移动上述.pipe($.sourcemaps.write('.'))
行。
再次,没有运气。
任何人都知道如何解决这个问题?
gulp - 偶尔使用 gulp-changed 和/或 gulp-newer 和上传任务的 Gulpfile 异常
我写了一个不错的小构建脚本,它运行一些非常标准的任务,比如......
deploy/
最初清理我的目录- 构建、连接、丑化和将文件从其
dev/
目录复制到关联deploy/
目录 - 关注变化
- 等等
但是为了更好的上下文,我将其包括在下面:
我遇到的问题与upload
任务和copy
任务直接相关。
在运行gulp --env [environment-name]
(例如gulp --env staging
)或只是gulp --env
时,有时当我保存位于 的子目录之一中的文件时 dev/liquid/
,copy
任务会按预期运行,然后通过上传单个保存和复制的文件。upload
任务。但是,有时我会保存一个文件并且copy
任务照常运行,但随后手表upload
会发疯并尝试上传其中的每个文件deploy/
(这会导致 api 调用限制错误,这自然会给我带来问题)。
我最初gulp-changed
在我的copy
任务中使用过,但后来注意到它只会做 1:1 映射而不是目录(不确定我在这方面有多正确)。所以我切换到gulp-newer
,并且事情工作了一段时间,但后来事情又开始吓坏了。
我不知道是什么原因造成的,我有我的怀疑,但我不知道如何对它们采取行动。任何建议、观察、改进建议、浪漫晚餐的好地方、可靠的宠物保姆等都将不胜感激。
特技特技!!!
_t
编辑:我一直很难重现这个怪胎(即所有文件都试图一次上传),有时运行相同gulp --env staging
的文件会导致怪胎,而其他时候在同一组文件上启动相同的任务确实没有什么。也许它可能与 gulp-newer 和 gulp-changed 使用 date modified 作为比较有关?
双重编辑:也许这是一种竞争条件,因为它有时有效,有时无效?我记得在 node-glob 或 minimatch github 页面上看到了一些关于竞争条件的内容......
gulp - gulp-changed / gulp-newer + gulp-rename 不起作用
我尝试绕过缩小、调整大小和重命名已处理的图像,添加“gulp-changed”对我没有任何改变;每次都处理所有文件。我尝试了“gulp-newer”,但仍然没有运气。
后来,我想通了——如果我省掉 gulp-rename,gulp-changed 就可以了。在任务中使用 gulp-rename - 它没有。但无论如何我都需要 gulp-rename ......
gulp - gulp:仅传递管道中更改的文件
我尝试对文件进行排序,在某些文件中替换文本并仅保存更改。在我当前的代码gulp-changed
中什么都不做。
更新:gulp-cached
我自己几乎解决了这个问题,但在我下面的答案中有一个小问题。
javascript - javascript, gulp, 观看, 改变
我无法理解这一点。这应该是每次修改监视文件时执行的 gulp 任务。谁能解释为什么需要通过changed
插件管道监视的文件?
免责声明:这不是我的代码。只是想了解发生了什么,以便创建我自己的自定义监视任务。
visual-studio-2015 - gulp-changed 没有过滤掉未更改的文件
我正在尝试使用gulp-changed来防止在未更改的文件上发生耗时的任务。我的 gulpfile.js 设置如下:
但是,每次我看到一切都在运行时:
任何原因gulp-changed没有过滤这些未更改的文件?