gulp-usemin не выводит js-файлы

Я пытаюсь использовать gulp-usemin связать мой CSS а также javascript файлы для производства. gulp-usemin работает нормально на моем CSS файлы, но ничего не выводит по отношению к моему javascript файлы. Может кто-нибудь указать мне, что я делаю не так?

У меня возникла проблема, похожая на то, что файлы uglified не переписываются в html-файл с помощью gulp-usemin, но предлагаемое решение не работает.

Для справки, мой node версия v0.12.1 и мой gulp Версии следующие:

"devDependencies": {
  "gulp": "^3.9.1",
  "gulp-minify-css": "^1.2.4",
  "gulp-rev": "^7.1.2",
  "gulp-uglify": "^2.0.0",
  "gulp-usemin": "^0.3.24"
}

index.html

<html>
<head>
  <meta charset="utf-8">

  <!-- build:css css/site.css -->
  <link rel="stylesheet" href="stylesheets/style.css" type="text/css" media="all" />
  <link rel="stylesheet" href="bower_components/font-awesome/css/font-awesome.min.css" type="text/css" media="all" />
  <!-- endbuild -->

  <!-- build:js js/site.js -->
  <script type="text/javascript" src='bower_components/gsap/src/minified/TweenMax.min.js'> </script>
  <script type="text/javascript" src='bower_components/d3/d3.js'> </script>
  <script type="text/javascript" src='bower_components/d3-tip/index.js'> </script>
  <script type="text/javascript" src='bower_components/moment/moment.js'> </script>
  <script type="text/javascript" src='chart.js'> </script>
  <!-- endbuild -->

</head>
<body>

</body>
</html>

gulp file

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var usemin = require('gulp-usemin');
var minifyCss = require('gulp-minify-css');

gulp.task('build', function() {
  return gulp.src(['index.html'])
    .pipe(usemin({
      css: [minifyCss()],
      js: [uglify()]
    }))
  .pipe(gulp.dest('dist/'));
});

После запуска gulp build Я сгенерирован dist каталог следующим образом

dist/
  css/
    site.css
  index.html

И мой сгенерированный index.html

<html>
<head>
  <meta charset="utf-8">

  <link rel="stylesheet" href="css/site.css" media="all"/>

</head>
<body>

</body>
</html>

Есть ли что-то очевидное, чего мне не хватает? Почему бы css блокировать работу, но js блок молча провалится?

1 ответ

Решение

Регулярное выражение используется gulp-usemin не допускает пробелов между открытием <script> и закрытие </script> тег. Также это не позволяет type="text/javascript" приписывать.

Смотрите эту страницу regex101 для соответствующего и несоответствующего примера.

Итак, это:

<!-- build:js js/site.js -->
<script type="text/javascript" src='bower_components/gsap/src/minified/TweenMax.min.js'> </script>
<script type="text/javascript" src='bower_components/d3/d3.js'> </script>
<script type="text/javascript" src='bower_components/d3-tip/index.js'> </script>
<script type="text/javascript" src='bower_components/moment/moment.js'> </script>
<script type="text/javascript" src='chart.js'> </script>
<!-- endbuild -->

Должно быть так:

<!-- build:js js/site.js -->
<script src='bower_components/gsap/src/minified/TweenMax.min.js'></script>
<script src='bower_components/d3/d3.js'></script>
<script src='bower_components/d3-tip/index.js'></script>
<script src='bower_components/moment/moment.js'></script>
<script src='chart.js'></script>
<!-- endbuild -->
Другие вопросы по тегам