Gulp 电子应用的带电重新加载

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

我想使用VScode+Gulp+Electron的组合来构建一个应用程序。开发工作流程的一个很好的特性是在我的GulpWatch任务中添加一个实时重新加载任务,在每次更改时重新加载Electron应用程序

你知道如何做到这一点吗


非常感谢您的帮助。

我通过插件实现了这一点。以下是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()传递的;由于是串行的,它会阻塞手表,并且永远不会发射电子。你能修改你的代码来说明这一点吗?