如何连接js / css文件并使用gulp替换html?

时间:2015-03-10 10:17:33

标签: css gulp

这里有很多问题和答案如何在模板中进行资产连接或替换。使用grunt-concat合并文件,使用gulp-html-replace替换模板。我无法理解如何将它们相互连接。

给定模板,friends.tpl有一组特殊的css文件:

!DOCTYPE html>
<html>
<head>
    <!-- build:css friends.min.css -->
    <link rel="stylesheet" href="css/component1/style.css">
    ...
    <link rel="stylesheet" href="css/componentN/style.css">
    <!-- /build -->
</head>
<body/>

期望的结果

!DOCTYPE html>
<html>
<head>
    <link rel="stylesheet" href="css/friends.min.css">
</head>
<body/>

并创建了带有上面连接文件的friends.min.css文件。

如何实现这一点 - 基于模板数据的concat

1 个答案:

答案 0 :(得分:2)

使用 gulp-htmlbuild ,它可以满足您的需求。

gulp.task('build', function () {


gulp.src(['./index.html'])
    .pipe(htmlbuild({
      // build js with preprocessor 
      js: htmlbuild.preprocess.js(function (block) {

    // read paths from the [block] stream and build them 
    // ... 

    // then write the build result path to it 
    block.write('buildresult.js');
    block.end();

  })
}))
.pipe(gulp.dest('./build'));
});

gulp build将采用index.html:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>

    <!-- htmlbuild:js -->
    <script src="js/script1.js"></script> 
    <script src="js/script2.js"></script> 
    <!-- endbuild -->

  </body>
</html>

然后把它变成:

<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <title>Document</title>
  </head>
  <body>

    <script src="buildresult.js"></script> 

  </body>
</html>

https://www.npmjs.com/package/gulp-htmlbuild