npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

create-expo-app

v3.1.1

Published

Create universal Expo apps

Downloads

143,316

Readme

# Usage for bun, npm, pnpm, and yarn
npx create-expo
bun create expo
pnpm create expo
yarn create expo

# Output help information with all available options
npx create-expo --help

Once you're up and running with Create Expo App, visit this tutorial for more information on building mobile apps with React.

Templates

Create Expo App prepares an empty Expo project by default. You can choose to use a project with more prepared functionality. For that, you can start Create Expo App with the --template flag.

# Pick from Expo's templates
npx create-expo --template

# Pick the expo-template-tabs template
npx create-expo --template tabs

npm templates

Expo publishes all templates through npm packages, versioned by Expo SDK. You can create your own npm templates with npm pack, or by publishing to npm.

# Create from npm
npx create-expo --template tabs # Short for expo-template-tabs
npx create-expo --template expo-template-tabs

# Create from npm using a semver of the template
npx create-expo --template expo-template-blank@50

# Create from local tarball created with `npm pack`
npx create-expo --template ./path/to/template.tgz

Private npm registry

Create Expo App does not support private registries. In order to use a private template, use the local tarball option.

GitHub templates

Besides the templates provided by Expo, you can also create your own or use a 3rd party template directly from GitHub. The --template flag supports GitHub URLs, including branch, tag, or even specific commit.

# Create from repository
npx create-expo --template https://github.com/:owner/:repo

# Create from repository using the `:ref` branch or tag
npx create-expo --template https://github.com/:owner/:repo/tree/:ref

# Create from repository using the `sdk-50` branch, and "templates/expo-template-bare-minimum" subdirectory
npx create-expo --template https://github.com/expo/expo/tree/sdk-50/templates/expo-template-bare-minimum

App name customization

Create Expo App customizes the name of the created app by replacing certain placeholder values in the template with the name specified by the user. Most users won't have to think about this process, but it may be relevant for users offering their own templates.

Renaming the app is a two-step process:

  1. while unpacking the template, the file and folder names are rewritten
  2. after unpacking the template, the file contents are rewritten

By convention, Expo templates use several placeholder values to be searched for and replaced:

  • Hello App Display Name → The name of the project, without modifications (example Android)
  • HelloWorld → The name of the project with sanitization as described below (example Android, iOS)
  • helloworld → The lower-cased name of the project with sanitization as described below (example Android)

Although all file and folder names are rewritten, only files specified by the "rename config" have their contents rewritten. This is determined by the defaultRenameConfig constant in ./src/Template.ts.

Sanitization

Some characters aren't allowed in certain places, that's why Create Expo App applies sanitization to the project name.

  • Remove all non-word \W and underscore _ characters.
  • Normalize the string using Unicode's normalization form "canonical composition" or NFD.
  • Remove all accent characters u0300-u036f.

Special files

Due to some limitations with npm pack, some files are handled differently.

  • gitignore → Renamed to .gitignore due to npm pack skipping .gitignore files, see npm/npm#1862