跳转到主要内容
SEO Title

有用的 Elm 教程、库和软件的精选列表。 灵感来自很棒的清单。 随意贡献。

A community driven list of useful Elm tutorials, libraries and software. Inspired by the awesome list thing. Feel free to improve this list.

Table of Contents

Learn

Learn what this awesome thing is.

Outdated Tutorials and books (Elm 0.18 or earlier)

🔝 back to top

Articles

Read the essentials. Check the official Elm blog: elm-lang.org/blog

Why Elm?

Miscellaneous articles

Outdated articles (Not relevant for current Elm architecture)

  • Elm for Web Developers - A collection of notes for web developers looking into moving to Elm.
  • Elm & Components - A blog post describing a possible approach to reducing TEA boilerplate. Useful for component libraries and anyone interested in seeing the amazing things you can do with function types.
  • Composing Features and Behaviours in the Elm Architecture - An article describing how to organize code that follows the Elm architecture into independent features, how to communicate between features, and how to group some of these features together to assemble larger features.
  • Getting Started with Elm - Series of Elm education tutorials.
  • Elm & Guarantees - a realistic look at where Elm is and isn’t superior to other options.

🔝 back to top

Videos

Watch great talks about Elm

Playlists

Miscellaneous videos

Video tutorials

🔝 back to top

News

Podcasts

Listen to podcasts about Elm

  • Elm Town - A podcast about the people in the Elm community.
  • Implementing Elm - A deep dive into specific problems to help the Elm community.
  • Elm Radio - Tune in to the tools and techniques in the Elm ecosystem.

Individual Podcast episodes

🔝 back to top

Testing

Tools and libraries to test your Elm applications

🔝 back to top

Code generators

  • HTML to Elm - Convert HTML to Elm Html. Useful when porting an app to Elm.
  • OpenApi Generator - Generate OpenApi types for Elm.
  • Elm TS Interop - Build up Encoders/Decoders between Elm and TypeScript.
  • Elm TypeScript Interop - Generate TypeScript definitions from Elm (Elm TS Interop is an improved version of this).
  • Quicktype - Generate JSON decoders and encoders from JSON
  • JSON Schema to Elm - Generates Elm types, JSON decoders, JSON encoders and fuzz tests from JSON schema specifications
  • Elm Bridge - Generate Elm types from Haskell
  • haskell-to-elm - Generate Elm types, encoders, and decoders from Haskell types
  • PostCSS Elm Tailwind - Put some Tailwind in your Elm

🔝 back to top

Package managers

Place to share Elm libraries.

  • elm-package - Command line tool to share Elm libraries.

🔝 back to top

Libraries

You can find hundreds of high quality packages at:

  • Elm packages - The official registry
  • Elm Catalog - Find packages in a catalog organized into categories.
  • Elm Search - Search Elm documentation for operators, function signatures, etc.

🔝 back to top

Boilerplates

Good starting point for a new Elm project.

  • create-elm-app - Create Elm apps with no build configuration.
  • elm-boil - Command Line Utility for creating an Elm boilerplate project easy to run, build and get deployed
  • elm-live - A flexible dev server for Elm. Live reload included.
  • elm-webpack-4-starter - Elm webpack 4 starter template.
  • example-elm-hot-webpack - Example showing hot module reloading for Elm 0.19 and Webpack
  • Elm Batteries - A project template and generator for Elm, Parcel, Cypress and Netlify
  • IHP + Elm - The IHP Haskell Framework provides a built-in Elm boilerplate, useful when working with elm in the frontend and haskell in the backend

Outdated Boilerplates

  • elm-webpack-starter - A simple Webpack setup for writing Elm apps.
  • elm-app-boilerplate - A fully-featured base project for Elm apps: Webpack, HMR, ES6, JS and Elm tests, Semantic UI, sample code and more.
  • elmkit - A lightweight Brunch based setup for web app. Includes Brunch, Hot Module Replacement, Elm, Scss, Elm tests.
  • elm-boilerplate - A simple Makefile able to create Elm app.
  • elm-init - Interactive setup for new Elm projects.
  • elm-new - Generate initial project scaffolding based on a template.
  • elm-webpack-starter-kid - A very very basic elm + webpack 4 template.

🔝 back to top

Frameworks

Projects that bring a framework approach to Elm (scaffolding, route generation, etc)

  • elm-spa - single page apps made easy
  • Spades - Start an Elm SPA ready to the real world

Static analysis

  • Elm Analyse - Linter for the Elm programming language.
  • Elm Review - Code reviewer for the Elm programming language.

🔝 back to top

Static site generators

🔝 back to top

Showcase generators

  • Elm Book - Rich documentation builder based on Storybook and HexDocs.
  • Elm UI Explorer - Showcase your views and states.

🔝 back to top

Run Elm

  • Ellie - The Elm Live Editor
  • Elm Editor - Advanced Elm Live Editor
  • run-elm — Run Elm code from the command line
  • elm-instant - atom package to try your elm code from the editor. Provides a visual REPL and a preview pane.
  • Glitch - Build fast, full-stack web apps in your browser.
  • Elm Live - A flexible dev server for Elm. Live reload included!

🔝 back to top

Compile and bundle

  • elm-compiler - Compiler for the Elm programming language.
  • elm-webpack-loader - Webpack loader for the Elm programming language.
  • Parcel - Bundle Elm using Parcel
  • grunt-elm - Grunt plugin that compiles Elm files to JavaScript.

🔝 back to top

Other tools

Useful tools related to Elm.

🔝 back to top

Editor plugins

Tools to support Elm in code editors.

Atom

  • atom-linter-elm-make - Elm code linter for the Atom editor.
  • atom-elm-snippets - Elm snippets for Atom.
  • atom-language-elm - Syntax highlighting and autocompletion for the Atom editor.
  • elmjutsu - Autocompletion, go to definition, find usages, rename symbol, etc. for the Atom editor.
  • atom-elm-navigator - A side panel that helps to navigate to any function, type definition or port in your project.

Emacs

  • emacs-elm-mode - Syntax highlighting, Elm REPL, Elm make and Elm format integration for the Emacs editor.

IntelliJ

Sublime Text

Vim/Neovim

Visual Studio Code

Other editors

  • elm-light-table - Syntax highlighting, REPL, autocompletion, package management and much more for Light Table.

🔝 back to top

Examples

Some good apps written in Elm.

Games

  • elm-games - An excellent list of games made in Elm

🔝 back to top

Community and Support

Where to find help.

  • Discourse - Elm Discourse instance (official forum).
  • Reddit - Elm board on reddit.
  • IRC - Ask questions on elm freenode.
  • Slack - Elm slack community.

🔝 back to top

Conferences

🔝 back to top

Inspired by Elm

Some projects influenced by Elm

  • Bolero - F# in WebAssembly using Elmish
  • Bucklescript-TEA - The Elm Architecture based on OCaml / Reason and Bucklescript
  • Elchemy - Write Elixir code using statically-typed Elm-like syntax
  • Elmish - Elm-like abstractions for F# apps
  • Fabulous - F# Functional App Development, using declarative dynamic UI
  • Iced - A cross-platform GUI library for Rust, inspired by Elm
  • Redux - A predictable state container for JavaScript apps.
  • SwiftUI
  • MAUI - .NET Multi-platform App UI
  • Oolong - An Elm inspired Model-View-Update (MVU) implementation for Kotlin multiplatform.

🔝 back to top

Beyond the DOM

At the moment Elm is heavily targeted towards the browser, here are some experiments on using Elm outside the DOM:

  • iOS A POC for using Elm 0.18 for native iOS Applications
  • elmish-wasm A POC for compiling elm to Web Assembly
  • elm-serverless Run Elm 0.18 on Cloud Functions using the Serverless Frameworks
  • elm-posix - Write CLI programs using Elm

原文:https://github.com/sporto/awesome-elm