Gulp-Inject Positions

Если я хочу ввести файлы Js в diff. места, например <head> here а также here </body>, Мне нужно установить имена, как описано здесь для инъекций: https://github.com/klei/gulp-inject

  <!-- head:js -->
  <!-- only importantFile.js will be injected here -->
  <!-- endinject -->

Как я могу изменить этот селектор, чтобы мне не нужно было называть каждый файл. Например, взять все файлы, которые содержат *_important.js

.pipe(inject(gulp.src('./src/importantFile.js', {read: false}), {name: 'head'}))

И есть ли лучший способ. Например, добавление s.th. внутри файла javascript или назовите его следующим образом: orderModule.above.js, googleAnalytics.below.js

2 ответа

gulp.task('dev', function () {
  var target = gulp.src('./index.html');
  return target
    .pipe(inject(gulp.src('_MAIN_CSS_FILES_', {read: false})))
    .pipe(inject(gulp.src('_BOWER_CSS_FILES_', {read: false}), {name: 'bower'}))
    .pipe(inject(gulp.src('_MAIN_JS_FILES_', {read: false})))
    .pipe(inject(gulp.src('_BOWER_JS_FILES_', {read: false}), {name: 'bower'}))
    .pipe(gulp.dest("./dest/"));
});

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>

    <!-- inject:css -->
    <!-- built css files will go here... -->
    <!-- endinject -->

    <!-- bower:css -->
    <!-- bower installed css files will go here... -->
    <!-- endinject -->

</head>
<body>


<!-- bower:js -->
<!-- bower installed js files will go here... -->
<!-- endinject -->

<!-- inject:js -->
<!-- built js files will go here... -->
<!-- endinject -->

</body>
</html>

От gulp документация:

gulp.src(globs[, options]) - Издает файлы, соответствующие указанному glob или массиву glob.

Поэтому у вас есть огромная свобода определять, как вы хотите различать "важные" файлы и другие.

.pipe(inject(gulp.src('*_important.js')))
.pipe(inject(gulp.src('*.head.js')))

и т.д. Затем просто предоставьте отрицание этого шаблона во втором gulp.src вызов

.pipe(inject(gulp.src(['*.js', '!*_important.js'])))
.pipe(inject(gulp.src(['*.js', '!*.head.js'])))
Другие вопросы по тегам