在gulp-inject索引任务上对文件进行排序

时间:2016-04-29 20:07:59

标签: javascript angularjs gulp

我正在尝试对文件进行排序,因为我收到Angular错误,因为文件的类型。

这是我的Gulp文件

var gulp = require('gulp');
var angularFilesort = require('gulp-angular-filesort');
var naturalSort = require('gulp-natural-sort');
var inject = require('gulp-inject'); 

gulp.task('index', function () {
  var target = gulp.src('./public/index.html');
  var sources = gulp.src(
      ['./**/*.js', './**/*.css'],
      {
        read: false,
        cwd: __dirname + "/public/",
      }
    ).pipe(angularFilesort());

  return target.pipe(inject(sources, { addRootSlash: false }))
    .pipe(gulp.dest('./public'));
});

文件正在这样排序

    <!-- inject:js -->
    <script src="app.js"></script>
    <script src="controllers/add.js"></script>
    <script src="controllers/main.js"></script>
    <script src="filters/fromNow.js"></script>
    <script src="services/show.js"></script>
    <script src="vendor/angular-cookies.js"></script>
    <script src="vendor/angular-messages.js"></script>
    <script src="vendor/angular-resource.js"></script>
    <script src="vendor/angular-route.js"></script>
    <script src="vendor/angular-strap.js"></script>
    <script src="vendor/angular-strap.tpl.js"></script>
    <script src="vendor/angular.min.js"></script>
    <script src="vendor/moment.min.js"></script>
    <!-- endinject -->

这里是文件夹

enter image description here

和控制台错误

enter image description here

所以我错过了什么?

1 个答案:

答案 0 :(得分:1)

删除{read: false}选项。 gulp-angular-sort需要文件内容起作用,而read: false会阻止文件内容被读取。

来自docs

  

注意请勿对read使用gulp.src选项!此插件分析每个文件的内容以确定排序顺序。