我正在尝试构建一个吞咽管道-我想注入一些CSS到我的index.html (这很好),然后从源index.html的所有其他链接,并替换在输出版本。
我注意到,如果要替换的模板部分包括一个useref HTML注释,那么调用正在破坏输出(参见下面的COMMENT行示例)。用代码演示是最简单的:
index.html (源文件)
<!-- build:css styles/app.css-->
<!--COMMENT-->
<link rel="stylesheet" href="/.tmp/styles.css">
<!-- endbuild -->gulpfile.js任务
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)
</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之后出现故障):
<!-- build:css styles/app.css-->
<!-- inject:css -->
<link rel="stylesheet" href="/.tmp/styles.css">
<!-- endinject -->
<!-- endbuild -->我怎样才能让useref()用正确的链接替换模板,而不让HTML注释完好无损呢?
谢谢。
https://stackoverflow.com/questions/29945216
复制相似问题