Git Product home page Git Product logo

exsync's Introduction

ExSync

Yet another Elixir reloader.

System Support

ExSync deps on FileSystem

Usage

  1. Create a new application:
mix new my_app
  1. Add exsync to your mix.exs dependencies:
def deps do
  [
    {:exsync, "~> 0.2", only: :dev},
  ]
end

Optionally add this snippet to your .iex.exs (in the root of your project) or your ~/.iex.exs:

if Code.ensure_loaded?(ExSync) && function_exported?(ExSync, :register_group_leader, 0) do
  ExSync.register_group_leader()
end

This will prevent the ExSync logs from overwriting your IEx prompt. Alternatively you can always just run ExSync.register_group_leader() in your IEx prompt.

Usage for umbrella project

  1. Create an umbrella project
mix new my_umbrella_app --umbrella
  1. Add exsync to your mix.exs dependencies:
def deps do
  [
    {:exsync, "~> 0.2", only: :dev},
  ]
end
  1. start your umbrella project with exsync task
iex -S mix exsync

Config

All configuration for this library is handled via the application environment.

:addition_dirs - Additional directories to monitor

For example, to monitor the priv directory, add this to your config.exs:

config :exsync, addition_dirs: ["/priv"]

:extensions - List of file extensions to watch for changes. Defaults to: [".erl", ".hrl", ".ex", ".eex"]

:extra_extensions - List of additional extensions to watch for changes (cannot be used with :extensions)

For example, to watch .js and .css files add this to your config.exs:

config :exsync, extra_extensions: [".js", ".css"]

:logging_enabled - Set to false to disable logging (default true)

:reload_callback - A callback MFA that is called when a set of files are done reloading. Can be used to implement your own special handling to react to file reloads.

:reload_timeout - Amount of time to wait in milliseconds before triggering the :reload_callback. Defaults to 150ms.

For example, to call MyApp.MyModule.handle_reload() add this to your config.exs:

config :exsync,
  reload_timeout: 75,
  reload_callback: {MyApp.MyModule, :handle_reload, []}

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.