create-rails-app
Version:
A CLI tool to bootstrap Ruby on Rails projects using RVM.
118 lines (93 loc) • 4.72 kB
Markdown
# create-rails-app
A CLI tool to bootstrap Ruby on Rails projects using RVM.
## Prerequisites
- Node.js (version 14 or higher)
- RVM (Ruby Version Manager)
## Usage
```bash
npm create rails-app@latest [options]
```
Or you can run this tool directly using npx:
```bash
npx create-rails-app [options]
```
Or install it globally:
```bash
npm install -g create-rails-app
# Then use it:
create-rails-app [options]
```
### Options
- `--ruby <version>`: Specify Ruby version (default: 3.3.7)
- `--name <name>`: Specify project name (default: myapp)
- `--skip-rails`: Skip generating the Rails app, only setup the Ruby version and gemset. When used, other options related to Rails app configuration are ignored.
- `--database <db>`: Specify database (options: postgresql, mysql, sqlite3; default: postgresql)
- `--no-database`: Skip database setup. If used, the application will use the default in-memory SQLite. (default: uses selected database or prompts for one).
- `--css <css>`: Specify CSS framework (options: tailwind, sass, postcss; default: uses vanilla CSS for full-stack, no CSS for API only). This option is only valid when the `--api` flag is not present.
- `--test <framework>`: Specify testing framework (options: minitest, rspec; default: minitest)
- `--no-test`: Skip test setup. If used, no testing framework will be set up. (default: uses the selected test framework or prompts for one).
- `--api`: Create an API-only Rails project (default: full-stack). If used, no CSS framework is included by default.
- `--help`: Show this help message
### Examples
```bash
npm create rails-app@latest
npm create rails-app@latest -- --ruby 3.2.0 --name my-rails-app
npm create rails-app@latest -- --skip-rails --name my-bare-app --ruby 3.3.6
npm create rails-app@latest -- --ruby 3.2.0 --rails 7.1.0 --name my-rails-app --database postgresql
npm create rails-app@latest -- --api --database postgresql
npm create rails-app@latest -- --database mysql
npm create rails-app@latest -- --no-database
npm create rails-app@latest -- --css tailwind --name my-tailwind-app
npm create rails-app@latest -- --css sass --name my-sass-app
npm create rails-app@latest -- --css postcss --name my-postcss-app
npm create rails-app@latest -- --test minitest
npm create rails-app@latest -- --test rspec
npm create rails-app@latest -- --no-test
# Or using npx (no installation required)
npx create-rails-app
npx create-rails-app --ruby 3.2.0 --name my-rails-app
npx create-rails-app --skip-rails --name my-bare-app --ruby 3.3.6
npx create-rails-app --ruby 3.2.0 --rails 7.1.0 --name my-rails-app --database sqlite3
npx create-rails-app --api --database sqlite3
npx create-rails-app --no-database
npx create-rails-app --css tailwind --name my-tailwind-app
npx create-rails-app --css sass --name my-sass-app
npx create-rails-app --css postcss --name my-postcss-app
npx create-rails-app --test minitest
npx create-rails-app --test rspec
npx create-rails-app --no-test
# Or if installed globally
create-rails-app
create-rails-app --ruby 3.2.0 --name my-rails-app
create-rails-app --skip-rails --name my-bare-app --ruby 3.3.6
create-rails-app --ruby 3.2.0 --rails 7.1.0 --name my-rails-app --database postgresql
create-rails-app --api --database postgresql
create-rails-app --no-database
create-rails-app --css tailwind --name my-tailwind-app
create-rails-app --css sass --name my-sass-app
create-rails-app --css postcss --name my-postcss-app
create-rails-app --test minitest
create-rails-app --test rspec
create-rails-app --no-test
```
## Features
- Automatically installs specified Ruby version using RVM.
- Creates a new RVM gemset for project isolation.
- Installs Rails with the specified version (unless `--skip-rails` is used).
- Sets up `.ruby-version` and `.ruby-gemset` files.
- Interactive prompts with default values.
- Supports multiple CSS framework options: `tailwind`, `sass`, `postcss`, only valid for full-stack applications, and defaults to vanilla CSS for full-stack, and no CSS for API only.
- When using `postcss`, this tool configures your application to use the `cssbundling-rails` gem for CSS bundling.
- Supports testing framework selection with options `minitest`, `rspec`.
- Supports skipping the database setup with the `--no-database` flag.
- Supports skipping test setup with the `--no-test` flag.
- Supports API-only mode with `--api` flag. If used, no CSS framework is included by default.
- Supports skipping Rails app generation with the `--skip-rails` flag.
## Requirements
- Unix-like operating system (Linux, macOS)
- RVM must be installed and properly configured
- Node.js 14 or higher
## License
MIT
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.