gulp-inject не может внедрить js-файл в index.html
Моя структура каталогов выглядит следующим образом:
|- app
|- bower_components
|- css
|- img
|- js
|- scss
|- template
|- node_modules
|- gulpfile.js
|- package.json
|- .bowerrc
|- bower.json
Теперь мой gulpfile.js такой, как показано ниже:
gulp.task('index', function() {
var target = gulp.src('./app/index.html');
var sources = gulp.src(['app/js/**/*.js'], { read: false });
return target.pipe(inject(sources))
.pipe(gulp.dest('app/js'));
});
gulp.task('default', function(callback) {
runSequence(['sass', 'browserSync', 'index'], 'watch',
callback
);
});
Мой файл index.html выглядит так:
<!DOCTYPE html>
<html>
<head>
<title>kisanApp</title>
<!-- inject:css -->
<!-- endinject -->
</head>
<body ng-app="kisanApp">
<ng-view></ng-view>
<!-- inject:js -->
<!-- endinject -->
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
</body>
</html>
Но почему-то мои файлы js не добавляются в index.html через gulp. Так что-нибудь не так с этим путем?
1 ответ
Решение
Попробуйте добавить var inject = require('gulp-inject');
а также var gulp = require('gulp');
на вершину вашего глотка.
А затем еще раз посмотрите на ваши источники и gulp.dest:
var sources = gulp.src(['./app/js/**/*.js'], { read: false });
Вам нужно будет продолжить ./
до приложения
РЕДАКТИРОВАТЬ:
использование relative true
разбирать файлы инъекций из папки выше в дереве каталогов
var sources = gulp.src(['./app/js/**/*.js'], { read: false }, {relative: true});