create-cljs-app
v0.4.4
Published
Set up a modern cljs app by running one command.
Downloads
45
Readme
Create CLJS App
Create ClojureScript apps with a single command. It is focused on making it easy for JS and React developers to get started with ClojureScript.
Create CLJS App works on Windows, Linux, and macOS. If something doesn’t work, please file an issue.
Heavily inspired on create-react-app. A lot of messages are mostly the same for now (create-react-app maintainers: if that's not ok, let me know).
Quick Overview
npx create-cljs-app my-app
cd my-app
npm start
Then open http://localhost:3000/ to see your app.
When you’re ready to deploy to production, create a minified bundle with npm run build
.
Creating an App
You’ll need to have Node 10.16.0 or later version on your local development machine (but it’s not required on the server). You can use nvm (macOS/Linux) or nvm-windows to easily switch Node versions between different projects.
You'll also need a Java SDK (Version 8+, Hotspot).
To create a new app, you may choose one of the following methods:
npx
npx create-cljs-app my-app
(npx comes with npm 5.2+ and higher)
npm
npm init cljs-app my-app
npm init <initializer>
is available in npm 6+
Yarn
yarn create cljs-app my-app
yarn create
is available in Yarn 0.25+
It will create a directory called my-app
inside the current folder.
Inside that directory, it will generate the initial project structure and install the transitive dependencies:
my-app
├── README.md
├── package.json
├── node_modules
├── shadow-cljs.edn
├── .gitignore
├── public
| ├── css
| | └── style.css
| ├── index.html
| └── favicon.ico
└── src
├── app
| ├── cards.cljs
| ├── core.cljs
| ├── hello.cljs
| └── hello_cards.cljs
└── e2e
└── core.cljs
Once the installation is done, you can open your project folder:
cd my-app
Inside the newly created project, you can run some built-in commands:
npm start
or yarn start
Runs the app in the development mode. Open http://localhost:3000 to view it in the browser. The page will reload if you make edits.
The app uses Reagent, a minimalistic interface between ClojureScript and React. You can use existing npm React components directly via a interop call.
Builds use Shadow CLJS for maximum compatibility with NPM libraries. You'll need a Java SDK (Version 8+, Hotspot) to use it. You can import npm libraries using Shadow CLJS. See the user manual for more information.
npm run cards
or yarn cards
Runs the interactive live development environment. You can use it to design, test, and think about parts of your app in isolation.
This environment uses Devcards and React Testing Library.
npm run build
or yarn build
Builds the app for production to the public
folder.
It correctly bundles all code and optimizes the build for the best performance.
npm test
or yarn test
, and npm run e2e
or yarn e2e
test
launches the test runner in the interactive watch mode.
You can use test:once
instead to run the tests a single time, and e2e
to run end-to-end tests.
See the ClojureScript testing page for more information. E2E tests use Taiko to interact with a headless browser.
npm run lint
or yarn lint
, and npm run format
or yarn format
lint
checks the code for known bad code patterns using clj-kondo.
format
will format your code in a consistent manner using zprint-clj.
npm run report
or yarn report
Make a report of what files contribute to your app size. Consider code-splitting or using smaller libraries to make your app load faster.
npm run server
or yarn server
Starts a Shadow CLJS background server. This will speed up starting time for other commands that use Shadow CLJS.
License
Create CLJS App is open source software licensed as MIT.