问题标签 [gulp-merge]

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.

0 投票
1 回答
142 浏览

gulp - gulp-useref 不适用于 gulp-merge

情况:我有以下 Gulp 脚本,它应该将我所有的 html 文件构建到 distFolder。此外,它应该通过解析 index.html 中的链接来构建外部脚本文件——这是 useref 的优点。我不确定这是否是理想的方法 - 但我需要拆分 html 文件 - 如果我放入多个 html 文件,我会遇到与 cleanCSS() 和 uglify() 的写入冲突。

问题:第二个任务 (htmlmin) 从未加载。看来,第一个任务(htmlscripts)没有在承诺中返回有效的结尾。(依赖问题)

如果我删除了两项任务中的一项,另一项将正确完成。

我做了以下测试:

不工作(htmlmin 任务未开始):

工作(我的意思是至少运行 htmlmin 脚本):

不工作(htmlmin 任务未开始):

工作(我的意思是至少运行 htmlmin 脚本):

0 投票
0 回答
39 浏览

node.js - gulp-merge 在 .pipe 之后无法输出 gulp-main-bower-files

我有一个 css 构建任务,它合并了来自 bower 依赖项和我自己的 css 的资源。

构建任务是使用 git 源代码控制的项目的一部分。该项目已经正常运行了一年多。

直到昨天,当我重新安装运行构建任务的 npm 依赖项时,一切都在我的 Windows 笔记本电脑上正常工作。

下面是一个简化的例子

gulpfile.js

包.json

和 bower.json

在昨天之前,该任务将合并在$.merge(...). 从昨天开始,npm install我发现合并只会输出第一个声明源的结果。

经过一些测试,我发现如果我反转合并源的顺序,那么两个源都会合并到设置的输出目标。

此解决方案的问题在于输出内容反转,这可能会导致样式继承等问题。成功输出的这种更改使我认为.pipe($.mainBowerFiles(...)声明的方式和位置可能存在问题。

我还尝试用 merge2 和 main-bower-files 分别替换 gulp-merge 和 gulp-main-bower-files 的已安装模块。使用其中一个或两个都解决了问题,但这不是一个理想的解决方法,因为它意味着更新 gulp 任务和安装的模块。

在我的项目中,突然无法输出任务合并 css(或 js)对于项目中的任何历史提交或分支都有实际问题。

有没有我可以诊断原始失败的$.merge(...)方法,或者我可以在我的 git 项目和任何分支的所有提交中用 merge2 追溯替换 gulp-merge 的方法?