Code Monkey home page Code Monkey logo

electron-reload's Introduction

electron reload

This is (hopefully) the simplest way to load contents of all active BrowserWindows within electron when the source files are changed.

Linting npm Code Climate Known Vulnerabilities license

Installation

npm install electron-reload

Usage

Just initialize this module with desired glob or file path to watch and let it refresh electron browser windows as targets are changed:

'use strict';

const {app, BrowserWindow} = require('electron');

const electronReload = require('electron-reload')

// Standard stuff
app.on('ready', () => {
  let mainWindow = new BrowserWindow({width: 800, height: 600});

  mainWindow.loadUrl(`file://${__dirname}/index.html`);
  // the rest...
});

Note that the above code only refreshes WebContents of all BrowserWindows. So if you want to have a hard reset (starting a new electron process) you can just pass the path to the electron executable in the options object:

const path = require('path')

require('electron-reload')(__dirname, {
  electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
});

If your app overrides some of the default quit or close actions (e.g. closing the last app window hides the window instead of quitting the app) then the default electron-reload hard restart could leave you with multiple instances of your app running. In these cases you can change the default hard restart action from app.quit() to app.exit() by specifying the hard reset method in the electron-reload options:

const path = require('path')

require('electron-reload')(__dirname, {
  electron: path.join(__dirname, 'node_modules', '.bin', 'electron'),
  hardResetMethod: 'exit'
});

API

electron_reload(paths, options)

  • paths: a file, directory or glob pattern to watch

  • options (optional) containing:

    • chokidar options
    • electron property pointing to electron executables.
    • electronArgv string array with command line options passed to the Electron executable. Only used when hard resetting.
    • appArgv: string array with command line options passed to the Electron app. Only used when hard resetting.
    • forceHardReset: enables hard reset for every file change and not only the main file

    options will default to {ignored: /node_modules|[\/\\]\./, argv: []}.

Why this module?

Simply put, I was tired and confused by all other available modules which are so complicated* for such an uncomplicated task!

* e.g. start a local HTTP server, publish change events through a WebSocket, etc.!

Changelog

  • 2.0.0-alpha.1:
    • Update outdated dependencies.
    • Fix #35: throw error instead of logging to console.
    • Fix #65: add TypeScript definitions.
    • Fix #78: minor README fixes.
    • Fix #87: enable passing arguments to the app itself.
  • 1.5.0:
    • Upgrade chokidar from v2 to v3 (lighter/faster installation)
    • Add friendly linting in dev mode (node run lint) and fix CI linting issues (see #62)
  • 1.4.1: Fix two minor bugs
    • Wrong globbing when doing hard reset (#58)
    • Issues with locating main file in specific project structures (#57)
  • 1.4.0: Enable hard reset for all changes (and not only the main file)
  • 1.3.0: Allow passing arguments to electron executable upon hard resets
  • 1.2.5: Upgrade dependencies (fix vulnerabilities)
  • 1.2.4: Use index.js as fallback if main is not defined in package.json
  • 1.2.3: Fix multiple instances on restart
  • 1.2.2: Fix browserWindows[] indexing
  • 1.2.1: Remove logging from production code (d'oh)
  • 1.2.0: Allow hard reset in multiple browser windows
  • 1.1.0: Add app.exit() in addition to app.quit() for hard resets
  • 1.0.3: Fix hard reset bug
  • 1.0.2: Detach child so that killing parent doesn't kill it (on windows)
  • 1.0.1: Replace extend with Object.assign
  • 1.0.0: Adapt to Electron 1.0 new API
  • 0.3.0: Use new method of accessing app (e.g. require(electron).app)
  • 0.2.0: Use new electrons (> v0.32.3) browser-window-created event

electron-reload's People

Contributors

brunocassol avatar chris-schmitz avatar dougluce avatar erickzhao avatar heiltec avatar louisgv avatar yan-foto avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

electron-reload's Issues

electron doesn't work right on mac

when I use electron-reload like this:

require('electron-reload')(__dirname,{
  electron: path.join(__dirname, 'node_modules','.bin', 'electron')
})

my electron coulden't restart or reload after changing main.js,but when I use

require('electron-reload')(__dirname,{
electron: require(`${__dirname}/node_modules/electron`)
})

It works!
why this happened?

Watching `__dirname` and not what I set `path` to

What is the problem

When I set the path to watch as a different path other than __dirname, it doesn't seem to work ... what I mean is that it seems to watch changes only in __dirname, and not the path that I specified

How to reproduce

  • Clone blocks/desktop
  • yarn
  • yarn add -D electron-reload
  • Add this code to main/index.js:
require('electron-reload')(path.join(__dirname, '..', 'src'), {
  electron: path.join(__dirname, '..', 'node_modules', '.bin', 'electron')
})
  • yarn start
  • Change line 83 in src/index.js to:
- <span sx={{ ml: 2 }}>Back</span>
+ <span sx={{ ml: 2 }}>Testing</span>
  • Navigate to some MD or MDX file in your filesystem
  • It will show up as <- Back and not as <- Testing! For example:
Before After

Additional information

OS: macOS 10.14.4 (18E226) ... Mojave
node: 10.15.2
yarn: 1.15.2
electron: 5.0.7

Using inside webpack

hi!

I'm trying to use this, in an Electron app, packaged with webpack, but as soon as the application start, it shows an error and don't load the windows content.

captura de pantalla 2

Only the main file is watched for hard reset

Hard reset is done for the main file only and not for change in the directory. In the code there is this:

let mainFile = path.join(appPath, config.main);
chokidar.watch(mainFile).on('change', () => {

I gess it should be this ?:

chokidar.watch(appPath).on('change', () => {

Reload fails: Not allowed to load local resource: data:text/html,chromewebdata

Without routing:
I have cloned and build (using webpack) the template Electrogram and reloading work well out of the box. The Electrogram app is bootstrapped starting an AppComponent. No routing in this app.

When I replace the app folder by the Quickstart app from Angular and bootstrap the app from the AppModule the apps runs well and reloading works fine. This app does not have routing.

With routing:
When I replace the app folder by the Tour of Heroes tutorial app from Angular and bootstrap starting the top AppModule the app runs well. But..., when the app gets reloaded, the window remains blank and the following error occurs: "Not allowed to load local resource: data:text/html,chromewebdata".
When I bootstrap the app starting an AppComponent reloading works fine. Unfortunately routing does not work when bootstrapping from Component.

Uncaught Exception: Cannot find module ../package.json

NOTE: before openning an issue, please consult previous issues (both open and closed).

What is the problem

The module raises an exception:

Uncaught Exception:
Error: Cannot find module '/home/myuser/projects/myproject/main/package.json'

How to reproduce

Include require("electron-reload")(app.getAppPath() + "../renderer") in the entrypoint of the program.

Additional information

This happens with Electron 5.0.6
Apparently, getAppPath() points to the entry point of the program, which in this case is /home/myuser/projects/myproject/main/main.js. The problem is that package.json is in /home/myuser/projects/myproject/ not in /home/myuser/projects/myproject/main. I see no way of specifying the relative path of package.json with respect to getAppPath()

Typescript Definition

I notice that some developers requested a typescript definition. As seen on issue #22 and #60. I submitted a pull request #64 with regards to this issue. I hope I can help. Thanks.

Electron could not be found. No hard resets for you

NOTE: before openning an issue, please consult previous issues (both open and closed).

What is the problem

It just dosen't work

How to reproduce

I just follow the Usage and then it happened

Additional information

win10
latest node,electron

Tray icon is duplicated after hard reload

I have an app that create tray icon (on GNU/Linux) and when I change something in main.js the tray icon get duplicated. I've tried to use tray.destroy but that didn't help

function createTray() {
    if (tray) {
        tray.destroy();
    }
    tray = new Tray('icon.png');
    tray.setToolTip('Electron Terminal');
    const contextMenu = Menu.buildFromTemplate([
        {role: 'quit'}
    ]);
    tray.setContextMenu(contextMenu);
}

I'm running this function in app ready event.

Problem

I am getting the following error while trying to use the module.

Error: Cannot find module 'app'
    at Module._resolveFilename (module.js:455:15)
    at Function.Module._resolveFilename (C:\path\Electron\music-player\node_modules\electron\dist\resources\electron.as
ar\common\reset-search-paths.js:35:12)
    at Function.Module._load (module.js:403:25)
    at Module.require (module.js:483:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (C:\path\Electron\music-player\node_modules\electron-reload\main.js:1:90)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)

And the main.js has the following for usage of the module

const electron = require('electron')
const app = electron.app
const BrowserWindow = electron.BrowserWindow
require('electron-reload')(__dirname+'/public')

Can anyone guide me how to resolve the problem ?

electron-reload doesn't work when it's installed globally.

The following error shows up, when I install electron-reload globally:

App threw an error during load
Error: Cannot find module 'electron-reload'
    at Module._resolveFilename (module.js:485:15)
    at Function.Module._resolveFilename (C:\Users\Jonas\AppData\Roaming\npm\node_modules\electron\dist\resources\electron.asar\common\reset-search-paths.js:35:12)
    at Function.Module._load (module.js:437:25)
    at Module.require (module.js:513:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\Jonas\Documents\Programming\Electron\APIDemosStudy\main.js:3:1)
    at Object.<anonymous> (C:\Users\Jonas\Documents\Programming\Electron\APIDemosStudy\main.js:10:3)
    at Module._compile (module.js:569:30)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:503:32)

When I install it locally, however, it works as expected.

Hard Reset crashes if more than one browser windows are open.

To reproduce:

On main process I create two browser windows.
If I hard reset by changing main.js, A second process is spawned but the first one crashes throwing the following error:

screen shot 2017-03-08 at 3 03 08 am

Here is how I require electron-reload:

const reload = require('electron-reload')(__dirname, {
    ignored: /node_modules|dist|build|[\/\\]\./,
    electron: 'node_modules/.bin/electron'
  });

I managed to temporary solve the problem by adding main.js to the ignored list.
Then, hard reset works fine.
So I guess, maybe It tries to refresh the windows after the have been destroyed?

Allow hard reset for all changes

Some people have problems with Angular combined with electron-reload (see #10 and #11). An option to allow hard reset for every change can be introduced (which shouldn't be recommended!).

Can't resolve 'fsevents'

i did just copy and paste

require('electron-reload')(__dirname);

and then i got error

WARNING in ./node_modules/electron-reload/main.js 14:15-58
Critical dependency: the request of a dependency is an expression
 @ ./src/main/index.js

WARNING in ./node_modules/chokidar/lib/fsevents-handler.js
Module not found: Error: Can't resolve 'fsevents' in 'E:\dev\nodejs\InsideCommunity\node_modules\chokidar\lib'
 @ ./node_modules/chokidar/lib/fsevents-handler.js
 @ ./node_modules/chokidar/index.js
 @ ./node_modules/electron-reload/main.js
 @ ./src/main/index.js

hmm...

i tried "npm i --save-d chokidar"

but yet i got error

please add typescript types

What is the problem

image

Could not find a declaration file for module 'electron-reload'. '/home/koko/hodhod-electron/node_modules/electron-reload/main.js' implicitly has an 'any' type.
  Try `npm install @types/electron-reload` if it exists or add a new declaration (.d.ts) file containing `declare module 'electron-reload';`ts(7016)

How to reproduce

install and import electron-reload

Project could upgrade to Chokidar 3

The chokidar package on NPM recently got a major version bump from 2 to 3. Although there haven't been many API changes from v2 (see Changelog), Chokidar v3 drastically reduces the size of node_modules and enforces a minimum of Node 8.

See blog post:

Let’s compare npm install on a clean machine for v2 and v3:

Chokidar v2:

Installation time: 7.753 sec
Consumes 3.195mb of traffic (3.03mb down, 165kb up) and makes 46 network connections
Creates 201 packages from 130 contributors and audits 2113 packages
node_modules file count: 1,251 (484 *.js)
node_modules size: 8.3Mb
Chokidar v3:

Installation time: 1.575 sec (4.9x faster)
Consumes 352Kb of traffic (9x less) (329kb down, 23kb up) and makes 16 network connections
Creates 15 packages (13x less) from 20 contributors and audits 19 packages
node_modules file count: 79 (26 *.js) (15.8x less)
node_modules size: 496Kb (16.7x less)

Typings for TypeScript

Hi,

could you please provide type definitions for TypeScript within your package?
That would help me a lot.

Thank you,
Martin

Hard resets not working with electron-forge

I am trying to get hardresets to work with electron-forge, but to start electron-forge you need to execute electron-forge start. Since i can add only path to executable I am unable to use hard resets

I would need something like this:

require('electron-reload')(path.join(__dirname, '../app'), {
	electron: path.join(__dirname, '../node_modules', '.bin', 'electron-forge start')
})

Hard reset doesn't work

Hi there,

first thanks for that helpfull plugin!

A reload for the frontend-part (means changing /app/index.htm) works well. But if I define the electron-parameter the program crashes when I do make changes on the /main.js. Do you have any clue where does it come from?

Thanks in advance!

Two little fixed for your README:

  1. The line
    mainWindow.loadUrl(file://${__dirname}/index.html);
    -> The name of the function has changed loadUrl to loadURL (capital letters)
  2. And the line
    electron: require('electron-prebuilt')
    doesn't work anymore, because electron-prebuilt doesn't exist anymore.

2017-01-20 21_43_56-picturecopyandsort - c__users_hobelmann it_sync_dev_htdocs_picturecopyandsort

it does not work on osx

Hello,

It does not work on osx for me. When I just require the electron:
require('electron-reload')(__dirname, { electron: require('electron') });
I get the messsage:

Electron could not be found. No hard resets for you!

So, I specify the electron path:
require('electron-reload')(__dirname, { electron: path.join(__dirname, 'node_modules', '.bin', 'electron') });

With this config the app flashes for a split second, then exits.

I've prepared demo: https://github.com/mikes01/electron-quick-start

OS X El Capitain v10.11.5
electron v1.6.8
electron-reload v1.1.0

i will appreciate your help with this issue.

fsevents get error "Module parse failed: Unexpected character '�' (1:0)"

What is the problem

in ./node_modules/electron-reload/node_modules/fsevents/fsevents.node

Module parse failed: Unexpected character '�' (1:0)
You may need an appropriate loader to handle this file type.
(Source code omitted for this binary file)

 @ ./node_modules/electron-reload/node_modules/fsevents/fsevents.js 13:15-41

node: 10.12.0
electron: 6.0.7

How to reproduce

just
require("electron-reload")(__dirname)

Additional information

Crash on reload

This works fine
require('electron-reload')(__dirname);

But when I need full app restart, and try this

require('electron-reload')(__dirname, {
  electron: path.join(__dirname, 'node_modules', '.bin', 'electron')
});

Boom!
1

All files in their places
2017-02-10_12-01-26

Application flashes and exits when specifying electron binary on OSX

After specifying the explicit path of electron binary on OSX in the electron-reload config, the application flashes for a split second, then exits. Here's the code:
require('electron-reload')(__dirname, { electron: path.join(__dirname, 'node_modules', 'electron', 'dist', 'Electron.app', 'Contents', 'MacOS','Electron'), });

Am I missing something?

Electron-Reload opens new windows on every change

What is the problem

Electron-Reload open new windows every single time when a changing happens.

How to reproduce

You can check it in my repo: Relectron

How did I use electron-reload

In index.js I inserted the reload package like this:

if(process.env.NODE_ENV === "development") {
  require('electron-reload')(__dirname);
}

Additional information

OS: Windows 10
Node: 8.11.4
Electron-Reload: 1.4.0

Allow option to reload to original file path or specified URL (e.g. vs refresh)

I have a use case where I'm using this with Angular 5 and the PathLocationStrategy. The path location strategy uses HTML5 url push to put urls in the format /home instead of /#home (hash strategy). When using this within electron and it refreshes because of changes the browser tries to actually load /home from the file path.

Hard reset not working on windows

Hard reset not working on windows
"electron-reload": "^1.3.0",

form my investigation

const _path = path.join( __dirname, '../../', 'node_modules', '.bin', 'electron' );

but when append .cmd it work.
const _path = path.join( __dirname, '../../', 'node_modules', '.bin', 'electron.cmd' );

is its suppose to work like this ..?
if yes then please describe it in doc. Thanx :)

image

Main file is ignored

What is the problem

The main files is included in the ignored paths and therefore the watcher ignores is resulting in no hard resets at all.

How to reproduce

Import the library in any Electron project, run the app and make changes on the main file without setting the forceHardReset flag

Additional information

"electron-reload": "~1.4.0",
"electron": "~5.0.6",

`vibrancy` lost after reload

When making changes, the vibrancy is lost after each consecutive reload and thus the background is set to white. I am talking about the new feature in Electron making the BrowserWindow transparent and stuff behind it blurred. Example:

new BrowserWindow({
    vibrancy: "dark"
});

... any ideas how to fix this?

Error Messages on Windows

I successfully use this package on Macintosh, and find it to be a real help. However, on Windows, I get a JavaScript error. Not one, but very many:

Uncaught Exception:
Error: EISDIR: illegal operation on a directory, watch 'G:\'
	at FSWatcher.start …

Uncaught Exception:
Error: EISDIR: illegal operation on a directory, watch 'G:\content'
	at FSWatcher.start …

My project folder is mapped to G:\ and I get a separate message for the root and for every file & folder inside it, which is tedious.

The problem disappears when I comment out the line:

require('electron-reload')(__dirname);

I am running WIndows 10 in a virtual machine (VirtualBox). The project folder is one which has been shared from my Mac. I test it using npm start.

I am new to Electron development, so I have no idea whether I’m doing something improperly.

doc suggestion

i'm using a method not mentioned in the docs/read me which i've found pretty helpful, probably worth mentioning it for others.

import { app } from "electron"
import { createMainWindow, loadURL } from "./main-window"

const appPath = app.getAppPath()

require('electron-reload')(__dirname, {
electron: appPath,
hardResetMethod: 'exit'
});

...create window etc.

working demo here:
https://github.com/Coglite/dev/tree/storm-diagrams

ready-to-show not triggering on Mac

Hey friends!

I was having an issue after transitioning my app dev from my working Windows 10 desktop to my MacbookPro (10.12.6) and couldn't get my BrowserWindow to trigger ready-to-show. After a lot of failed digging I finally resorted to copy-pasting the sample code from electronjs.org and it worked! This led me to find that removing my electron-reload include got things working again.

While trying to figure things out I was able to observe that the app would start to fail somewhere in initializing my new BrowserWindow. I also found that it would trigger an unresponsive event.

I will try to dig in sometime so I welcome all tips and pointers for where to start looking!

Hard resets result in spawning two electron processes

Thanks for this awesome package!

I noticed that any hard reset results in spawning two electron processes. Here are the steps to reproduce it:

  1. Preparing the workplace:
git clone https://github.com/electron/electron-quick-start
cd electron-quick-start
npm install
npm install --save-dev electron-reload
  1. Enabling electron-reload by adding the following to the main.js file:
require('electron-reload')(__dirname, {
     electron: require(`${__dirname}/node_modules/electron`)
});
  1. Triggering the issue:

    • change the height property of the mainWindow (e.g., from 600 to 300)
  2. The issue per see:

    • the window is closed and a new window is created, but, if you move it to a different position on your screen you will notice that another window has been created.
    • also, any subsequent edits result in the same behavior.

I am currently using Windows 10, (Build 16299.248) and to run the scripts above I used cmder_mini (i.e., but I doubt this matters).

Do you have any clues how to tackle this?


Edit: I am aware that in the README you indicate the use of hardResetMethod: 'exit' to prevent spawning multiple instances, but in this case, the following did not make a difference:

require('electron-reload')(__dirname, {
     electron: require(`${__dirname}/node_modules/electron`),
     hardResetMethod: 'exit'
});

reloadIgnoringCache() does not properly work...

I had a problem in angular electron project, reloading was not working.
I fix it by changing the following lines.
origin : bw.webContents.reloadIgnoringCache()
after : bw.webContents.loadURL (bw.webContents.getURL () + "index.html", {
"extraHeaders": "pragma: no-cache\n"
});

if you guys have the same problem, then try it.

Cannot read property 'filename' of undefined

What is the problem

I get an error if I use package versions 1.5.0 or 1.4.1.

A JavaScript error occurred in the main process
Uncaught Exception:
TypeError: Cannot read property 'filename' of undefined
    at Object.eval (webpack:///./node_modules/electron-reload/main.js?:12:32)
    at eval (webpack:///./node_modules/electron-reload/main.js?:87:30)
...

The package is work if I change line 12 to const mainFile = ''.

Code console.log(module.parent) display that module.parent equals undefined.

Additional information

  • xUbuntu 18.04.3 LTS;
  • NodeJS: v12.8.0;
  • Yarn: v1.17.3;
main.js
// Modules to control application life and create native browser window
import { app, BrowserWindow } from 'electron';
import electronReload from 'electron-reload';

// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
let mainWindow;

electronReload(__dirname);

function createWindow() {

	// Create the browser window.
	mainWindow = new BrowserWindow({
		width: 800,
		height: 600,
		webPreferences: {
			nodeIntegration: true
		}
	});

	// And load the index.html of the app.
	mainWindow.loadFile('assets/index.html');

	// Open the DevTools.
	mainWindow.webContents.openDevTools();

	// Emitted when the window is closed.
	mainWindow.on('closed', () => {
		// Dereference the window object, usually you would store windows
		// in an array if your app supports multi windows, this is the time
		// when you should delete the corresponding element.
		mainWindow = null;
	});
}

// This method will be called when Electron has finished
// initialization and is ready to create browser windows.
// Some APIs can only be used after this event occurs.
app.on('ready', createWindow);

// Quit when all windows are closed.
app.on('window-all-closed', () => {
	// On macOS it is common for applications and their menu bar
	// to stay active until the user quits explicitly with Cmd + Q
	if (process.platform !== 'darwin') {
		app.quit();
	}
});

app.on('activate', () => {
	// On macOS it's common to re-create a window in the app when the
	// dock icon is clicked and there are no other windows open.
	if (mainWindow === null) {
		createWindow();
	}
});

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here.
Used packages
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @babel/[email protected]
├─ @develar/[email protected]
├─ @sindresorhus/[email protected]
├─ @szmarczak/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @types/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @webassemblyjs/[email protected]
├─ @xtuc/[email protected]
├─ @xtuc/[email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
├─ [email protected]
└─ [email protected]

Reload a packaged electron app using electron-reload

Hello,
I have electron app which I am running on a Linux system and I have packaged it using electron packager. What i want to do is reload my app whenever there is a change in the directory that contains the package. Does electron-reload provide this functionality (i.e detecting changes in the directory that contains the packaged binaries)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.