Skip to content

App generator with everything exposed for maximum control (powered by TypeScript, Babel, Jest, ESLint, Prettier, CircleCI, and more)

License

Notifications You must be signed in to change notification settings

juanbiberretta/create-exposed-app

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

82 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

create-exposed-app

Active Version Downloads Build License PRs Welcome Code of conduct

App generator with everything exposed for maximum control (powered by TS, Babel, Jest, ESLint, Prettier, CircleCI, and more)


Like zero-config? Get out!

Generate a flexible starting point for your app, where config files and scripts are in-your-face and ready to adapt to your needs.

Because every app is unique.

Go for it:

npm init exposed-app

command demo

What's included?

  • 🔧 TypeScript, Babel, Jest, ESLint, Prettier, and more
    • Configured with sensible defaults
    • All optional and tweakable
  • 🚀 CI/CD
    • Automatic validation in pull requests, powered by CircleCI
    • Automatic versioning and release to NPM after merging to master, powered by semantic-release
  • đź“– Documentation templates
  • 🎉 More!
    • Automatically format and test changed files, powered by lint-staged
    • VS Code settings

Examples

Usage

Run the following command and follow the prompts:

npm init exposed-app

You can also invoke the app with arguments. For example:

npx create-exposed-app \
  --project-package-name="my-awesome-project" \
  --project-overview="Does awesome stuff" \
  --side="server" \
  --author-name="Bruce Wayne" \
  --author-email="[email protected]" \
  --author-github="batman" \
  --author-website="https://batman.com"

Run npx create-exposed-app --help for details.

Inspiration

Credits

This project is authored and maintained by Matt Turnbull (iamturns.com / @iamturns).

Thank you to all contributors.

License

Open-source under MIT License.

FAQ

General FAQ

Uh oh, something went wrong!

Sorry about that. Please submit a bug report using the GitHub issue tracker.

I wish something was different…

Keen to hear all ideas! Create an enhancement request using the GitHub issue tracker.

Can I contribute code?

Yes please! See the Development FAQ section.

My question isn't answered here :(

Ask away using the GitHub issue tracker.

Development FAQ

First time contributing code to an open-source project on GitHub? Check out this free video tutorial.

How do I setup the project for development?

  1. If you don't have write access to this repo, fork it
  2. Clone the repo
  3. Install dependencies: npm ci
  4. Ensure everything is working: npm run validate
  5. Use VS Code? Run command Extensions: Show Recommended Extensions and install

What's the development workflow?

  1. Create a system-wide link for use in other directories: npm link

  2. Start develop mode: npm run dev

  3. For TDD fans: npm run test:watch

  4. Write code

  5. Create new temporary directory to test app population named create-exposed-app-test-my-new-feature

  6. Run npx create-exposed-app in new directory

    Note: This should reference your local create-exposed-app copy, setup by previous linking command

  7. Create a pull request on GitHub

  8. Remove the system-wide link: npm unlink

  9. Remove the temporary test directory create-exposed-app-test-my-new-feature

Why do my files automatically change?

See ADR-005: Format Files and ADR-006: Format Files Programmatically.

I can't make a "Work in progress" commit because the build is broken

Include the --no-verify option during the commit:

git commit -m "WIP" --no-verify

Miscellaneous FAQ

Why are the dev tools scripts so verbose?

See ADR-002: Prefer Configurable Dev Tools.

Why are there so many config files?

See ADR-003: Prefer Multiple Config Files.

Why isn't the build bundled or minified?

See ADR-004: Minimally Transform Source Code During Build.

Why does the Babel build script contain the --source-maps option?

This option is available in the Babel config file (sourceMaps: true), but has diffrent behaviour. Only the command line supports the creation of .map files. See babel/babel#5261.

Why does the format:eslint script ignore errors?

Linting errors should not be reported when formatting, that it was the lint command is for.

Errors are ignored by appending the following: >/dev/null 2>&1 || true.

About

App generator with everything exposed for maximum control (powered by TypeScript, Babel, Jest, ESLint, Prettier, CircleCI, and more)

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 81.4%
  • JavaScript 14.2%
  • Shell 4.4%