我对离子和吞咽有点新意。
我能够配置ionic.project
文件,以便在我第一次运行ionic serve
时运行gulp任务。
但是现在当我更改文件时,我希望gulp任务会再次运行..但这不会发生..有没有办法做到这一点?
这是我的ionic.project
文件:
{
"name": "test",
"app_id": "",
"gulpStartupTasks": [
"default"
],
"watchPatterns": [
"src/**/*",
"src/*",
"www/**/*",
"!www/lib/**/*"
]
}
我预计当某些文件更改与wtachPatterns
匹配时
它将调用gulp watch任务,但这不会发生(我看到离子看到文件已经改变但没有发生。)
这是gulp watch任务:
gulp.task('watch', function() {
gulp.watch(paths.sass, ['sass']);
gulp.watch(paths.script, ['script']);
});
基本上,任务是缩小所有JS文件和所有sass / scss文件
并且index.html
正在查看缩小的文件。因此,如果未调用gulp任务,则缩小文件中没有任何更改,我需要重新运行ionic serve
..是否有正确的方法来执行此操作?
更新:
这是完整的gulpfile
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'));
});
答案 0 :(得分:2)
那么问题出在./
我看过了。
我删除了$('select[name="month"]').on("change", function() {
var year = $('select[name="year"]').val();
if (year > 0) {
$('select[name="day"]').find("option").remove();
var daysInMonth = new Date(year, $(this).val(), 0).getDate();
for (var i = 1; i <= daysInMonth; i++) {
console.log(i);
$('select[name="day"]').append($("<option></option>").attr("value", i).text(i));
}
}
});
$('select[name="month"]').trigger('change');
,现在正在使用
答案 1 :(得分:0)
首先,你误解watchPatterns
是livereload,这意味着,如果有任何文件被更改,网页将刷新。它绝对与gulp
没有任何关系。
阅读详情:http://ionicframework.com/docs/cli/test.html
要通过观看来查看文件更改,请更新watch task
,即
gulp.task('watch', function() {
gulp.watch(paths.sass, ['sass']); <-- any file in paths.sass changed will trigger `gulp sass`
gulp.watch(paths.script, ['script']); <-- any file in paths.script changed will trigger `gulp script`
});
因此,如果您想观看Gulp要处理的更多文件,只需添加任务并在gulp watch
中观看。
哦,嘿,你只看./scss/**/*.scss
和./src/app.js
中的文件。如果您愿意,可以添加更多。