- PVSM.RU - https://www.pvsm.ru -

Приложение на Elm за считанные секунды

Современная разработка браузерных приложений стала слишком сложной. Не столько благодаря настоящей алгоритмической сложности, сколько благодаря изобилию подходов для этой самой разработки.

Наличие большого выбора — хорошо, но не всегда помогает продуктивности. Разработчики ценны, в первую очередь, умением писать полезный для бизнеса код. Проблема в том, что код — это лишь часть приложения. Коду сопутствует инфраструктура множества других инструментов, помогающих разработчику производить этот код.

Create React App

Опережая заявленный график, Даня Абрамов [2] объявил о публичном релизе Create React App [3] инструмента для командной строки, который упрощает создание и дальнейшую разработку приложений на базе React.

Философию этого инструмента можно подытожить тремя пунктами [4]:

  • минимизация числа зависимостей
  • отсутствие конфигурации
  • отсутствие привязки пользователя к инструменту и возможность доработки предложенного решения

С основными идеями и описанием функциональности вы можете ознакомиться в официальном блог-посте Create Apps with No Configuration [5]

Create Elm App

Вдохновившись идеями, вложенными в Create React App, я решил поддержать эту тенденцию и минимизировать необходимость в изучении инфраструктуры для людей, которым интересен Elm. Также Create Elm App идеально подходит для быстрого прототипирования.

Руководство

Установка

Для установки вам понадобится Node.js [6] 4.# и NPM [7] 3.#

npm install -g create-elm-app

Создание приложения

Для создания приложения следует выполнить следующую команду в командной строке:

create-elm-app my-app

Подождите несколько секунд, пока elm-package [8] установит необходимые пакеты, и приложение готово к разработке!

image

Новое приложение предлагает минималистичную структуру файлов и папок, готовую к разработке:

my-app/
  .gitignore
  README.md
  elm-package.json
  src/
    favicon.ico
    index.html
    index.js
    main.css
    Main.elm

Сборка

Оптимизированную сборку для размещения приложения на сервере можно совершить, выполнив команду elm-app build в корневой папке проекта:

cd my-app/
elm-app build

Разработка

Для выполнения приложения во время разработки используется сервер, размещенный по адресу http://localhost:3000/ [9]

elm-app start

image

Он позволяет использовать технологию Hot Module Replacement [10] для динамической подгрузки измененного кода без обновления страницы.

Установка Elm пакетов

Тут [11] уже размещено около полутысячи модулей для различных задач. Установка модулей при помощи Create Elm App выполняется следующим образом:

elm-app package install evancz/elm-http -y

Отсутствие привязки

В любой момент времени вы можете извлечь всю скрытую от пользователя конфигурацию и продолжить разработку приложения без Create Elm App.

elm-app eject

Эта команда скопирует необходимую конфигурацию и NPM модули для сборки и разработки, открывая возможности для более тонкой настройки.


Надеюсь, вы найдете этот инструмент полезным! Буду рад отзывам и пожеланиям [12]

Автор: halfzebra

Источник [13]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/189869

Ссылки в тексте:

[1] January 26, 2016: https://twitter.com/dan_abramov/status/691985215363928065

[2] Даня Абрамов: https://twitter.com/dan_abramov

[3] Create React App: https://github.com/facebookincubator/create-react-app

[4] тремя пунктами: https://github.com/facebookincubator/create-react-app#philosophy

[5] Create Apps with No Configuration: https://facebook.github.io/react/blog/2016/07/22/create-apps-with-no-configuration.html

[6] Node.js: https://nodejs.org/

[7] NPM: https://www.npmjs.com/

[8] elm-package: https://github.com/elm-lang/elm-package

[9] http://localhost:3000/: http://localhost:3000/

[10] Hot Module Replacement: https://webpack.github.io/docs/hot-module-replacement.html

[11] Тут: http://package.elm-lang.org/

[12] отзывам и пожеланиям: https://github.com/halfzebra/create-elm-app/issues

[13] Источник: https://habrahabr.ru/post/310432/?utm_source=habrahabr&utm_medium=rss&utm_campaign=sandbox