Gulp Compiling Angularjs 1 Скрипты в неправильном порядке - PullRequest
0 голосов
/ 27 августа 2018

Почему это происходит? Когда я компилирую скрипты, используя GULP, на консоли будут отображаться ошибки, объясняющие, что мои directives и / или мои controllers не зарегистрированы. Затем, чтобы исправить эту ошибку, я создаю переменную приложения в файле controller, а затем она выводит новую ошибку, затем я помещаю объявление переменной приложения обратно, и все работает нормально.

Это мой сценарий Gulp

var gulp = require('gulp'),
plugins = require('gulp-load-plugins')({
    pattern: ['gulp-*', 'gulp.*'],
    replaceString: /\bgulp[\-.]/
});

var path = {
    jsFiles: "./js/**",
    scriptFile: "scripts.min.js",
    output: "dist/assets/"
};

var options = {
    ie8: true,
    warnings: true,
    mangle: true
};

gulp.task('scripts', function (cb) {

    return gulp.src(path.jsFiles)
        .pipe(plugins.sourcemaps.init())
        .pipe(plugins.jsdoc3(cb))
        .pipe(plugins.concat(path.scriptFile))
        .pipe(plugins.babel())
        .pipe(plugins.ngAnnotate())
        .pipe(plugins.uglify(options))
        .pipe(plugins.sourcemaps.write("../../maps"))
        .pipe(gulp.dest(path.output))
})

TLDR: МОЕ задание Gulp иногда компилирует AngularJS directives и controllers не по порядку, отображая объявление моего приложения undefined.

Ответы [ 2 ]

0 голосов
/ 28 августа 2018

Вы должны сортировать угловые файлы, и есть некоторые библиотеки, которые это делают.https://www.npmjs.com/package/gulp-angular-filesort является одним из них.

0 голосов
/ 28 августа 2018

Когда вы передаете глобус на

gulp.src 

Заказ не гарантируется, поэтому есть возможность получить неправильный заказ время от времени.Но gulp.src также принимает массив путей, которые вам нужно включить, и это должно гарантировать порядок

Итак, попробуйте разделить ваш пакет и передать путь к angular.min.js как первый элемент, подобный этому:

gulp.src(['path/to/angular.min.js', 'path/to/your/code'])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...