Gulp 电子应用的带电重新加载
我想使用VScode+Gulp+Electron的组合来构建一个应用程序。开发工作流程的一个很好的特性是在我的GulpWatch任务中添加一个实时重新加载任务,在每次更改时重新加载Electron应用程序 你知道如何做到这一点吗Gulp 电子应用的带电重新加载,gulp,gulp-watch,electron,Gulp,Gulp Watch,Electron,我想使用VScode+Gulp+Electron的组合来构建一个应用程序。开发工作流程的一个很好的特性是在我的GulpWatch任务中添加一个实时重新加载任务,在每次更改时重新加载Electron应用程序 你知道如何做到这一点吗 非常感谢您的帮助。我通过插件实现了这一点。以下是livereload CSS的代码。不过,其他一切都是一样的 var gulp=require('gulp'), 运行=需要('gulp-run'), livereload=需要('gulp-livereload'), u
非常感谢您的帮助。我通过插件实现了这一点。以下是livereload CSS的代码。不过,其他一切都是一样的
var gulp=require('gulp'),
运行=需要('gulp-run'),
livereload=需要('gulp-livereload'),
uglify=需要('gulp-uglify'),
concat=require('gulp-concat'),
重命名=需要('gulp-rename'),
minifycss=require('gulp-minify-css'),
jshint=require('gulp-jshint'),
autoprefixer=require('gulp-autoprefixer'),
rimraf=需要(“咕噜咕噜咕噜”);
变量cssSources=[
“app/components/css/main.css”,
];
gulp.task('css',function(){
大口src(CSS资源)
.pipe(concat('main.css'))
.pipe(autoprefixer({浏览器:['last 2 versions','ie 10']}))
.pipe(大口目的地(“应用程序/公共/样式”))
.pipe(重命名({后缀:'.min'}))
.pipe(minifycss())
.pipe(大口目的地(“应用程序/公共/样式”))
.pipe(livereload());
})
吞咽任务('watch',function(){
利弗雷洛德。听();
狼吞虎咽的看(cssSources,['css']))
})
gulp.task('run',['build',function()){
返回运行('electron')。exec();
});
任务('default',['watch','run']);
桌面应用程序中的Livereload非常棒
一定要加上
<script src="http://localhost:35729/livereload.js"></script>
到你的index.html即使这已经被回答/接受,值得一提的是,我也设法让它与一起工作,还有一种方法可以使用gulp Web服务器来实现这一点(这是我浏览这篇文章的原因),并且不需要gulp livereload。忽略react生成器,它是执行react转换的单独任务。不用说,此任务启动Web服务器,监视更改,运行生成器,然后重新加载这些更改
var gulp = require('gulp'),
electron = require('electron-prebuilt'),
webserver = require('gulp-webserver'),
gulp.task(
'run',
['react-generator'], // Secondary task, not needed for live-reloading
function () {
gulp.watch('./app/react/*.jsx', ['react-generator']);
gulp.src('app')
.pipe(webserver({
port: 8123,
fallback: "index.html",
host: "localhost",
livereload: {
enable: true,
filter: function(fileName) {
if (fileName.match(/.map$/)) {
return false;
} else {
return true;
}
}
},
}));
});
如前一个答案所述,您需要将以下内容添加到您的索引文件中,否则它将表现为不适用于Electron,但适用于浏览器
<script src="http://localhost:35729/livereload.js"></script>
不是专门针对Gulp的,但是有一个简单的Electron插件专门用于此(在进行更改后重新加载应用程序): 只需添加包:
$ npm install electron-reload --save-dev
并将以下行添加到/main.js文件的顶部:
require('electron-reload')(__dirname)
谢谢你的意见。没有让它发挥作用。gulp live reload任务正在启动,但electron应用程序对此没有响应。我还需要补充什么吗?好的,知道了。缺少的部分是添加
标签。此外,不需要在包含electron应用程序的目录中包含gulpfile.js
。如果您愿意添加此信息,我会将其标记为解决方案。感谢您的帮助。从gulp 4.0开始,任务不是以数组形式传递的,而是通过函数gulp.series()传递的;由于是串行的,它会阻塞手表,并且永远不会发射电子。你能修改你的代码来说明这一点吗?