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 -->