这是我的问题,每次我转到控制台并尝试通过 gulp
重新启动服务器时,都会在浏览器中打开一个新选项卡,因此我必须关闭已打开的选项卡并开始研究新的。
还有另一个关于相同的问题:
有时代码样式会出现错误,并且一旦您执行 gulp
选项卡仍会打开,但是在修复代码样式错误之前您无法开始处理它,然后您去执行 gulp
然后新标 checkout 现。
这是我的 gulpfile.js
var gulp = require('gulp');
var paths = {
sass: ['scss/**/*.scss'],
js: ['www/js/*.js', 'www/js/**/*.js', '!www/js/lib.min.js', '!www/js/code.min.js']
};
// Dev task
gulp.task('dev', ['sass', 'lint', 'compress-lib', 'compress-js', 'run-ionic'], function() { });
// Build task
gulp.task('default', ['dev', 'lint', 'sass', 'compress-lib', 'compress-js', 'watch']);
//Ionic Serve Task
gulp.task('run-ionic',shell.task([
'ionic serve'
]));
gulp.task('compress-lib', function() {
gulp.src([
'./www/lib/ionic/js/ionic.bundle.min.js'
])
.pipe(concat('lib.min.js'))
.pipe(gulp.dest('./www/js'))
.pipe(livereload());
});
gulp.task('compress-js', function() {
gulp.src([
'./www/js/app.js'
])
.pipe(ngAnnotate())
.pipe(concat('code.min.js'))
.pipe(gulp.dest('./www/js'))
.pipe(livereload());
});
// JSHint task
gulp.task('lint', function() {
gulp.src(paths.js)
.pipe(jscs())
.pipe(jshint())
.pipe(jshint.reporter('default'))
.pipe(livereload());
});
gulp.task('sass', function(done) {
gulp.src('./scss/ionic.app.scss')
.pipe(sass({onError: function(e) { console.log(e); } }))
.pipe(autoprefixer('last 2 versions', 'Chrome', 'ios_saf','Android'))
.pipe(gulp.dest('./www/css/'))
.pipe(minifyCss({
keepSpecialComments: 0
}))
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest('./www/css/'))
.on('end', done)
.pipe(livereload());
});
gulp.task('watch', function() {
gulp.watch(paths.sass, ['sass']);
gulp.watch(paths.js, ['lint', 'compress-lib', 'compress-js']);
livereload.listen(9000);
});
gulp.task('install', ['git-check'], function() {
return bower.commands.install()
.on('log', function(data) {
gutil.log('bower', gutil.colors.cyan(data.id), data.message);
});
});
最佳答案
开发期间实时重新加载应用(测试版)
运行或模拟命令会将应用程序部署到指定的平台设备/模拟器。您还可以通过添加 --livereload 选项在指定的平台设备上运行实时重新加载。实时重新加载功能类似于 ionic serve,但不是使用标准浏览器开发和调试应用程序,编译后的混合应用程序本身会监视对其文件的任何更改,并在需要时重新加载应用程序。这减少了不断重建应用程序以进行小更改的要求。但是,对插件的任何更改仍需要完全重建。要使实时重新加载工作,开发机器和设备必须在同一本地网络上,并且设备必须支持 Web 套接字。
启用实时重新加载后,还可以通过包含 --consolelogs 或 -c 选项将应用程序的控制台日志打印到终端/命令提示符。此外,开发服务器的请求日志可以使用 --serverlogs 或 -s 选项打印出来。
运行和模拟的命令行标志/选项:
[--livereload|-l] ....... Live Reload app dev files from the device (beta)
[--consolelogs|-c] ...... Print app console logs to Ionic CLI (live reload req.)
[--serverlogs|-s] ....... Print dev server logs to Ionic CLI (live reload req.)
[--port|-p] ............. Dev server HTTP port (8100 default, live reload req.)
[--livereload-port|-i] .. Live Reload port (35729 default, live reload req.)
[--debug|--release]
当服务器正在运行以进行实时重新加载时,您可以在 CLI 中使用以下命令:
restart or r to restart the client app from the root
goto or g and a url to have the app navigate to the given url
consolelogs or c to enable/disable console log output
serverlogs or s to enable/disable server log output
quit or q to shutdown the server and exit
关于javascript - 如何避免 GULP 打开新标签页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28589511/