首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么replacement似乎无法处理替换部分中的注释?

为什么replacement似乎无法处理替换部分中的注释?
EN

Stack Overflow用户
提问于 2015-04-29 13:28:01
回答 3查看 5.1K关注 0票数 35

我正在尝试构建一个吞咽管道-我想注入一些CSS到我的index.html (这很好),然后从源index.html的所有其他链接,并替换在输出版本。

我注意到,如果要替换的模板部分包括一个useref HTML注释,那么调用正在破坏输出(参见下面的COMMENT行示例)。用代码演示是最简单的:

index.html (源文件)

代码语言:javascript
运行
复制
<!-- build:css styles/app.css-->
<!--COMMENT-->
<link rel="stylesheet" href="/.tmp/styles.css">
<!-- endbuild -->

gulpfile.js任务

代码语言:javascript
运行
复制
gulp.task('optimizeReplace', function () {
    var assets = $.useref.assets({ searchPath: './' });

    return gulp
        .src('./src/client/index.html')
        .pipe(assets)
        .pipe(assets.restore())
        .pipe($.useref())  //THIS IS THE PROBLEM LINE; IF INJECT IS NOT RUN FIRST IT IS MANGLED
        .pipe(gulp.dest('./wwwroot/'));
});

输出(index.html)

代码语言:javascript
运行
复制
</style>
<link rel="stylesheet" href="styles/lib.css">
<link rel="stylesheet" href="styles/app.css-->" <!--COMMENT>
</head>

<body>
  <div>

这个问题在HTML中更容易看到,但是COMMENT HTML注释松开了标记的末尾一半,所以在它认为它是注释之后的一切。

我想在替换部分中添加注释的原因是,该注释实际上是一个大口注射语句,它在执行useref之前注入了一些其他引用。我将其简化为一个简单的HTML注释,从而导致了问题。

这是导致问题的原因:.pipe($.useref())

我正在跟踪约翰·帕帕在普拉斯明球场上的课程,他使用这种精确的机制注入一些CSS,然后替换它们-( inject:css HTML注释分隔符在useref之后出现故障):

代码语言:javascript
运行
复制
<!-- build:css styles/app.css-->
<!-- inject:css -->
<link rel="stylesheet" href="/.tmp/styles.css">
<!-- endinject -->
<!-- endbuild -->

我怎样才能让useref()用正确的链接替换模板,而不让HTML注释完好无损呢?

谢谢。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29945216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档