ionic-framework - ionic 服务 : how to rerun gulp task

标签 ionic-framework gulp gulp-watch

我对 ionic 和 gulp 有点陌生。 我能够配置 ionic.project 文件,以便在第一次运行 ionicserve 时运行 gulp 任务。 但现在当我更改文件时,我希望 gulp 任务将再次运行..但这不会发生..有办法做到这一点吗?

这是我的ionic.project 文件:

{
  "name": "test",
  "app_id": "",
  "gulpStartupTasks": [
    "default"
  ],
  "watchPatterns": [
    "src/**/*",
    "src/*",
    "www/**/*",
    "!www/lib/**/*"
  ]
}

我预计当某些文件更改与 wtachPatterns 匹配时 它将调用 gulp watch 任务,但这不会发生(我看到 ionic 看到文件已更改但没有任何反应。)

这是 gulp watch 任务:

gulp.task('watch', function() {
  gulp.watch(paths.sass, ['sass']);
  gulp.watch(paths.script, ['script']);
});

基本上,任务是缩小所有 JS 文件和所有 sass/scss 文件 index.html 正在查找缩小的文件。因此,如果未调用 gulp 任务,则缩小文件中不会发生任何更改,我需要重新运行 ionicserve 。有没有正确的方法可以做到这一点?

更新:

这是完整的 gulp 文件

var gulp = require('gulp');
var gutil = require('gulp-util');
var bower = require('bower');
require('require-dir')('./gulp/tasks');


var paths = {
  sass: ['./scss/**/*.scss'],
  style: ['./src/**/*.scss'],
  script: ['./src/app.js'],
  html:['./src/*.html']
};

gulp.task('default', ['sass', 'script','watch', 'html', 'style']);


gulp.task('watch', function() {
  gulp.watch(paths.sass, ['sass']);
  gulp.watch(paths.script, ['script']);
});

gulp.task('install', ['git-check'], function() {
  return bower.commands.install()
    .on('log', function(data) {
      gutil.log('bower', gutil.colors.cyan(data.id), data.message);
    });
});

gulp.task('git-check', function(done) {
  if (!sh.which('git')) {
    console.log(
      '  ' + gutil.colors.red('Git is not installed.'),
      '\n  Git, the version control system, is required to download     Ionic.',
      '\n  Download git here:', gutil.colors.cyan('http://git-    scm.com/downloads') + '.',
      '\n  Once git is installed, run \'' + gutil.colors.cyan('gulp install') + '\' again.'
    );
    process.exit(1);
  }
  done();
});

这是具有实际任务的文件之一的示例:

var browserify = require('browserify');
var gulp = require('gulp');
var source = require('vinyl-source-stream');
var stringify = require('stringify');

var paths = ['./src/app.js'];

gulp.task('script', function() {
  return browserify(paths, {debug: true})
    .transform(stringify(['.html']))
    .bundle()
    .pipe(source('app.js'))
    .pipe(gulp.dest('./www/js'));
});

最佳答案

好吧,问题出在我观看的路径上。 我删除了 ./ 现在它可以工作了

关于ionic-framework - ionic 服务 : how to rerun gulp task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34104383/

相关文章:

html - 是否可以使用 gulp 将带有特定变量的 scss 提取到 css 中?

javascript - Gulp watch 只执行一次任务

javascript - 无法插入将 $scope 变量传递到 Angular 过滤器时出现的错误

javascript - 如何从图像 Canvas 中裁剪颜色部分?

cordova - 'ionic build' 和 'cordova build' 之间的区别?

Gulp watch ...不是在看吗?

javascript - 如何将 Cordova 应用程序中的本地存储项目持久保存到手机上?

javascript - 使用 Gulp 将 Handlebars 模板预编译为单独的 JST (.js) 文件

javascript - Gulp 断言错误 [ERR_ASSERTION] : Task function must be specified after Node and NPM update

javascript - Gulp:以更少的方式启用内联 Javascript