Cómo crear la aplicación ClojureScript

Este artículo está inspirado en la herramienta Create Elm App para el lenguaje Elm, que a su vez está inspirado en la herramienta Create React App para React.js y JavaScript

El objetivo de esas herramientas es proporcionar una configuración de compilación sin configuración, por lo que es más fácil comenzar para desarrolladores y novatos. En este artículo, me gustaría hacer una breve descripción de lo que ClojureScript puede ofrecer para aquellos que recién comienzan con el lenguaje.

Leiningen

Leiningen es la forma más fácil de usar Clojure. Con un enfoque en la automatización de proyectos y la configuración declarativa, se sale de su camino y le permite concentrarse en su código.

¡Eso es! Todo lo que necesitas es una sola herramienta. Leiningen gestiona sus dependencias, ejecuta el servidor de desarrollo y realiza compilaciones de producción. En realidad, es la herramienta más esencial para los proyectos de Clojure (Script). Permite utilizar preprocesadores CSS, codificar el código, ejecutar pruebas e2e o implementar en producción y realizar muchas más tareas con complementos. Puedes pensar en Leiningen como un corredor de tareas como Grunt.

Leiningen elimina la configuración repetitiva mediante plantillas. Una plantilla es un paquete escrito por una persona aleatoria en Internet, para ayudar a otros desarrolladores a comenzar con diferentes tipos de proyectos.

Empezando

  1. Instale Leiningen (vea otras opciones de instalación):
brew install lein

2. Proyecto Bootstrap ClojureScript con plantilla Figwheel:

nuevo nombre de proyecto de rueda dentada
salida de línea de comando después de ejecutar `lein new figwheel my-app`

Esto generará un proyecto de la siguiente estructura:

├── README.md
├── dev
│ └── user.clj
├── project.clj
├── recursos
│ └── público
│ ├── css
│ │ └── style.css
│ └── index.html
└── src
    └── my_app
        └── core.cljs

Si desea comenzar a crear una aplicación web, puede inicializar un proyecto con una de las tres bibliotecas de contenedor React.js: Om, Rum o Reagent.

nuevo nombre de proyecto de rueda dentada - --rum

Construcción de producción

lein cljsbuild una vez min

lein-cljsbuild es un complemento para construir proyectos ClojureScript.

Esto ejecutará una tarea que se define en la configuración como min solo una vez y producirá una compilación de producción optimizada y minimizada. El compilador de cierre optimiza el código, que es la herramienta de optimización de JavaScript más avanzada.

salida de línea de comando después de ejecutar `lein cljsbuild una vez min`

Servidor de desarrollo

lein figwheel

lein-figwheel es un complemento para la recarga en caliente de código JavaScript y CSS de salida.

Echemos un vistazo a lo que está sucediendo aquí:

  1. Validación de configuración. Si algo está mal con una configuración, Figwheel le pedirá que arregle esto señalando un error exacto en el archivo de configuración.
  2. Iniciando el servidor. El servidor de desarrollo está comenzando en locahost: 3449, el puerto se puede especificar en la configuración.
  3. Compilar y mirar. Compila ClojureScript y observa los cambios en los archivos fuente del proyecto. Figwheel compilará los cambios e introducirá el código JavaScript en el navegador. Si hay un error en su código, Figwheel no lo actualizará, sino que mostrará un cuadro de alerta en el navegador con un mensaje de error y la ubicación exacta de ese error en el código.
  4. Iniciando CSS Watcher. Observador simple para archivos CSS que empujará los cambios al navegador.
  5. ClojureScript REPL. Finalmente, Figwheel iniciará REPL interactivo donde puede ejecutar código que se ejecutará en el navegador e interactuar con el código del proyecto.

Grabé este video rápido para mostrar cómo funcionan REPL y Figwheel.

Dependencias

Los paquetes Clojure (Script) se almacenan en un repositorio similar a NPM, se llama Clojars. Puede encontrar un paquete allí y agregarlo a: dependencias en su project.clj. Leiningen instalará nuevas dependencias automáticamente cuando reinicie el proyecto.

: dependencias [[org.clojure / core.async "0.2.391"]]

Conclusión

Espero que este artículo te haga sentir menos miedo de ClojureScript y te ayude a comenzar a usarlo en segundos. A continuación se incluye una lista de recursos que quizás desee leer para obtener más información sobre el lenguaje y las herramientas.

  • Wiki ClojureScript
  • Leiningen
  • Figwheel
  • ClojureScript Koans
  • Los próximos cinco años de ClojureScript
  • ClojureScript para escépticos
  • Desarrollando ClojureScript con Figwheel