- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
-6ren">
考虑以下文件系统:
📁哈巴狗
‖test1.pug
‖test2.pug
📁 部分内容
partial1.pug
使用 gulp 任务
gulp.task('pug', () => {
return gulp.src('pug/*.pug')
.pipe(pug())
.pipe(gulp.dest('dist'))
});
即使我们只编辑 test1.pug,test1.pug 和 test2.pug 也会被编译。如果将任务更改为
gulp.task('pug', () => {
return gulp.src('pug/*.pug', {since: gulp.lastRun('pug')})
.pipe(pug())
.pipe(gulp.dest('dist'))
});
自 gulp-watch 运行第二个 'pug' 以来,只有更改的或新的文件才会被传递。但是,如果 partial1.pug
已包含在 test1.pug
中怎么办? (假设 gulp.watch
观察所有文件)。
test1.pug
doctype html
html
head
title Test 1
body
h1 Test 1
include partials/partial1.pug
如果我们编辑test1.pug,它当然会被编译。但是,如果我们编辑 partial1.pug,test1.pug 将不会被 {since: gulp.lastRun('pug')}
传递。
我不知道,如何解决这个问题,但我想,我们需要在输出之前从文件或已编译的 html 中过滤组装的 pug。如果可能的话……
也许我没有把想要的结果解释清楚。我们需要:
让我重复一遍,partial1.pug 包含在 test1.pug 中,但不包含在 test2.pug 中。
最佳答案
src
模式之外的依赖项在这个阶段不可用以供观察。它们稍后被添加到管道中(通过 pug()
)。为了支持您的用例,Gulp 需要有一种方法从下游转换器收集依赖项。目前这不属于 Gulp 的范围(这是一个复杂的行为,有许多可能的设计选择)。
您的问题的最佳解决方案是手动更新您的 src
模式以匹配您的整个依赖关系树。在您的情况下,它将是 pub/**/*.pug
。 (wildstar **
允许您匹配任何子目录中的文件)。
您还可以查看实现 your own watcher以获得更好的控制(我担心我上面的模式可能会为您的部分生成 HTML)。
关于一口哈巴狗 : compile new on changed files only (case with "includes" and "extends"),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50165810/
当谈到什么是客户端和什么是服务器端时,我有点困惑。我目前正在构建一个网站,使用 Pug 作为我的 HTML 页面,没有带有 的 HTML 页面。等等 那么我是否在服务器端渲染我的页面,因为我没有在客
我正在使用 webpack v4,我正在尝试将 Pug 与 webpack-dev-server 一起使用,但是当我运行 webpack-dev-server - -mode development
我正在尝试使用 NodeJS 以及 express 和 pug 作为模板来制作一个网站。我使用 Express 文档集成了 Pug,但在渲染函数上不断收到 TypeError: View is not
Profile 我不知道如何输入 i 和 a 中的“个人资料” 。请帮助我! 最佳答案 您可以使用在线服务将HTML转换为Jade,例如:
这个问题在这里已经有了答案: How to make an inline-block element fill the remainder of the line? (9 个回答) 关闭 4 年前
我在我的 jade 文件中使用 mixin。要求是有两个 div。如果我只创建一个 div,它会渲染,但如果我使用两个 mixins 来渲染内容,我会收到错误:“undefined jade_mixi
此处演示代码:https://codepen.io/iShawnWang/pen/ZvBGRv 我想要的只是调用一个js函数并传递一个参数, 我已经尝试过以下答案,但不起作用 How to pass
我找了好几个小时都没有解决这个问题。我是 Node.Js 的初学者,目前我正在将它与 Express 以及 Router 和 Sequelize 一起用于学校项目。 上下文: 我有一个 MySQL 数
我正在开发一个基于 keystone.js 的应用程序。我希望最终用户能够创建根据变量而变化的内容。例如,如果他们想创建电子邮件模板,他们可以编写: Hi #{firstName},... 这将作为纯
虽然我可以传递对象的数据,但我不知道如何传递/调用对象的函数。 route.js: router.get('/', function(req, res, next) { let test = {}
我正在开发一个以 Pug 作为模板引擎的 Koa.js 应用程序。我想创建一个自动化流程,以便生产模板具有使用指纹名称更新的 JavaScript 和 CSS 文件的 URL,以及某个 CDN 提供商
我是一名优秀的程序员,十分优秀!