2015-07-07 3 views
5

У меня есть этот файл ionic.project:Ионных служить игнорирование gulpStartupTasks

{ 
    "name": "foobar", 
    "app_id": "com.foo.bar", 
    "gulpStartupTasks": [ 
    "styles", 
    "source", 
    "watch" 
    ], 
    "watchPatterns": [ 
    "www/**/*", 
    "!www/lib/**/*" 
    ], 
    "sourceModules": { 
    "ionic": "git://github.com/driftyco/ionic.git", 
    "ng-cordova": "git://github.com/driftyco/ng-cordova.git" 
    } 
} 

Но задачи глотка не выполняются, я даже добавил некоторые console.logs для отладки, но ничего не произошло.

Любые идеи?

UPDATE:

Я обнаружил, что gulpStartupTasks в настоящее время выполняется асинхронно с инициализацией Ionic, поэтому, когда Ионный пытается найти папку WWW и не найти (потому что мою гавань задачи запуска» т запустить еще) это не удается, и убить процесс

но если я создаю пустую папку WWW, чтобы обмануть Ионный он работает, но открывает браузер с высказыванием об ошибке, что index.html не была найдена

Однако , через несколько секунд я вижу, что запускаемые задачи выполняются ex ecuted в моей оболочке

И если я обновить страницу работает

Как я могу сделать эти задачи запуска выполняются перед тем ионными пытается найти папку WWW?

ответ

0

Я понял, что Ionic не игнорирует gulpStartupTasks, поскольку я ранее обновлял вопрос, а выполнял их асинхронно с инициализацией сервера.

Чтобы исправить это, я добавил скрипт postinstall в свой пакет package.json, чтобы выполнить работу по созданию папки www, обработать исходные файлы и затем скопировать их в папку www.

Это решило проблему, но я до сих пор не понимаю, почему gulpStartupTasks выполняет async вместо синхронизации, это кажется неправильным. Не так ли?

0

Итак, я понял это. Я предполагаю, что вы, как и я, редактируете в другом файле .sass или .scss, чем тот, который поставляется с ионными скелетными приложениями. В этом случае вам нужно добавить этот новый путь к файлу gulp, или livereload подберет изменения, но фактически не выполнит команду «sass» на пути с вашим новым SASS-файлом.

Вот мой отредактированный пути линии в gulpfile.js

var paths = { 
    sass: ['./scss/**/*.scss', './www/sass/**/*'] 
}; 

«./www/sass/**/*», где я кладу новые файлы Сасс, что я @Import в главном ionic.app .scss-файл.

// Include all of Ionic 
@import "www/lib/ionic/scss/ionic"; 
@import "www/sass/test"; 
4

Согласно последнему Ionic-Cli documentation, если вы хотите какая-либо задача глотка скороходов приложения подается, добавьте serve:before задачу в файл gulpfile.js в корневом каталоге проекта. В вашем случае это будет:

gulp.task("serve:before", [ 
    "styles", 
    "source", 
    "watch" 
]); 
+0

Этот работал для меня. – user1261710

Смежные вопросы