- Remove all webpack and babel related npm dependencies - Add esbuild and esbuild-plugin-postcss2 as a dependency - Add a custom `build.js` script to build css and js with esbuild and copy static files to the priv/static directory - Modify `config/dev.exs` to use that build script as a watcher instead of webpack - Modify `package.json` to use that build script in instead of webpack - Modify `KetbinWeb.Endpoint` to serve the assets directory instead of css and js directories from static - Modify the `app.html.eex` layout to use `assets` directory instead of separate css and js directories Signed-off-by: Akshit Garg <garg.akshit@gmail.com>
		
			
				
	
	
		
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Elixir
		
	
	
	
	
	
defmodule KetbinWeb.Endpoint do
 | 
						|
  use Phoenix.Endpoint, otp_app: :ketbin
 | 
						|
 | 
						|
  # The session will be stored in the cookie and signed,
 | 
						|
  # this means its contents can be read but not tampered with.
 | 
						|
  # Set :encryption_salt if you would also like to encrypt it.
 | 
						|
  @session_options [
 | 
						|
    store: :cookie,
 | 
						|
    key: "_ketbin_key",
 | 
						|
    signing_salt: "HmwUQdXk"
 | 
						|
  ]
 | 
						|
 | 
						|
  socket "/socket", KetbinWeb.UserSocket,
 | 
						|
    websocket: true,
 | 
						|
    longpoll: false
 | 
						|
 | 
						|
  socket "/live", Phoenix.LiveView.Socket, websocket: [connect_info: [session: @session_options]]
 | 
						|
 | 
						|
  # Serve at "/" the static files from "priv/static" directory.
 | 
						|
  #
 | 
						|
  # You should set gzip to true if you are running phx.digest
 | 
						|
  # when deploying your static files in production.
 | 
						|
  plug Plug.Static,
 | 
						|
    at: "/",
 | 
						|
    from: :ketbin,
 | 
						|
    gzip: false,
 | 
						|
    only: ~w(assets fonts images favicon.ico robots.txt)
 | 
						|
 | 
						|
  # Code reloading can be explicitly enabled under the
 | 
						|
  # :code_reloader configuration of your endpoint.
 | 
						|
  if code_reloading? do
 | 
						|
    socket "/phoenix/live_reload/socket", Phoenix.LiveReloader.Socket
 | 
						|
    plug Phoenix.LiveReloader
 | 
						|
    plug Phoenix.CodeReloader
 | 
						|
    plug Phoenix.Ecto.CheckRepoStatus, otp_app: :ketbin
 | 
						|
  end
 | 
						|
 | 
						|
  plug Phoenix.LiveDashboard.RequestLogger,
 | 
						|
    param_key: "request_logger",
 | 
						|
    cookie_key: "request_logger"
 | 
						|
 | 
						|
  plug Plug.RequestId
 | 
						|
  plug Plug.Telemetry, event_prefix: [:phoenix, :endpoint]
 | 
						|
 | 
						|
  plug Plug.Parsers,
 | 
						|
    parsers: [:urlencoded, :multipart, :json],
 | 
						|
    pass: ["*/*"],
 | 
						|
    json_decoder: Phoenix.json_library()
 | 
						|
 | 
						|
  plug Plug.MethodOverride
 | 
						|
  plug Plug.Head
 | 
						|
  plug Plug.Session, @session_options
 | 
						|
  plug KetbinWeb.Router
 | 
						|
end
 |