Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/lambrospetrou/create-shadow-cljs-app

Easy creation of ClojureScript applications using Shadow-CLJS
https://github.com/lambrospetrou/create-shadow-cljs-app

aws-lambda clojure clojurescript closure nodejs shadow-cljs

Last synced: 3 months ago
JSON representation

Easy creation of ClojureScript applications using Shadow-CLJS

Awesome Lists containing this project

README

        

# create-shadow-cljs-app

This is an NPM initializer to ease the creation of projects using the **awesome** [Shadow-CLJS](https://shadow-cljs.github.io/docs/UsersGuide.html).

The default template provides out-of-the-box setup for a Node script, a standard `commonjs` library, and a browser-compatible output.

## Get started

To create a project named `cljs-app`, run any of the following commands:

```
npx create-shadow-cljs-app cljs-app

# or

npm init shadow-cljs-app cljs-app
```

This will create a directory `cljs-app` with code for the three main targets supported.

To create release artifacts for all of the available targets run `npm run release`.

Check the `README.md` of the created project for more details on what you get.

## Options

To see all the options available run `npx create-shadow-cljs-app --help`.

## Contributing

The goal of this project is to provide a no-fuss starting template for projects to use `Shadow-CLJS`.

I am happy to accept pull requests as long as the goal of the projects remains as is.

When choosing between simplicity and features, always prefer simplicity.

### Local testing

In order to test the initializer locally you can use [`npx`](https://github.com/npm/npx) to simulate the flow using a local directory.

```bash
# Checkout the initializer code
mkdir -p ~/dev && cd ~/dev
git clone https://github.com/lambrospetrou/create-shadow-cljs-app.git
pushd create-shadow-cljs-app && npm install && npm pack && popd

# Create the new app using the local version of the initializer (use the right version in the `*.tgz` file)
npx ~/dev/create-shadow-cljs-app/create-shadow-cljs-app-1.1.1.tgz --name cljs-app
```