You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+63-27Lines changed: 63 additions & 27 deletions
Original file line number
Diff line number
Diff line change
@@ -1,15 +1,25 @@
1
-
2
1
# Create React App
3
2
4
3
Create React apps with no build configuration.
5
4
6
-
***One Dependency:** There is just one build dependency. It uses Webpack, Babel, ESLint, and other amazing projects, but provides a cohesive curated experience on top of them.
5
+
## tl;dr
7
6
8
-
***Zero Configuration:** There are no configuration files or command line options. Configuring both development and production builds is handled for you so you can focus on writing code.
7
+
```sh
8
+
npm install -g create-react-app
9
9
10
-
***No Lock-In:** You can “eject” to a custom setup at any time. Run a single command, and all the configuration and build dependencies will be moved directly into your project, so you can pick up right where you left off.
10
+
create-react-app my-app
11
+
cd my-app/
12
+
npm start
11
13
12
-
## Installation
14
+
```
15
+
16
+
Then open http://localhost:3000/ to see your app.
17
+
18
+
When you're ready to deploy to production, you can use `npm run build` to make a minified bundle ready for deployment.
**This tool doesn’t assume a Node backend**. The Node installation is only required for the build tools that rely on it locally, such as Webpack and Babel. The output folder includes an `index.html`, a minified JavaScript bundle, and bundled images and styles, so you can host them anywhere you like.
23
33
24
-
## Why Use This?
25
-
26
-
**If you’re getting started** with React, use `create-react-app` to automate the build of your app. There is no configuration file, and `react-scripts` is the only extra build dependency in your `package.json`. Your environment will have everything you need to build a modern React app:
27
-
28
-
* React, JSX, and ES6 support.
29
-
* Language extras beyond ES6 like the object spread operator.
30
-
* A dev server that lints for common errors.
31
-
* Import CSS and image files directly from JavaScript.
32
-
* Autoprefixed CSS, so you don’t need `-webkit` or other prefixes.
33
-
* A `build` script to bundle JS, CSS, and images for production, with sourcemaps.
34
-
35
-
**The feature set is intentionally limited**. It doesn’t support advanced features such as server rendering or CSS modules. Currently, it doesn’t support testing either. The tool is also **non-configurable** because it is hard to provide a cohesive experience and easy updates across a set of tools when the user can tweak anything.
36
-
37
-
**If you’re a power user** and are comfortable with configuring build dependencies yourself, you can use this tool as a boilerplate generator. When you “eject” from it, the tool moves all the configuration right into your project, and removes itself from the dependencies. This way you can customize everything in this setup but you won’t get the upstream updates of the curated set of plugins.
38
-
39
-
**You don’t have to use this.** Historically it has been easy to [gradually adopt](https://www.youtube.com/watch?v=BF58ZJ1ZQxY) React. However many people create new single-page React apps from scratch every day. We’ve heard [loud](https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4) and [clear](https://twitter.com/thomasfuchs/status/708675139253174273) that this process can be error-prone and tedious, especially if this is your first JavaScript build stack. This project is an attempt to figure out a good way to start developing React apps.
40
-
41
-
## Usage
34
+
### Creating an App
42
35
43
36
To create a new app, run:
44
37
@@ -49,8 +42,26 @@ cd my-app
49
42
50
43
It will create a directory called `my-app` inside the current folder.
51
44
52
-
Inside that directory, it will generate the initial project structure and install the transient dependencies.<br>
53
-
Once the installation is done, you can run some commands inside the project folder!
45
+
Inside that directory, it will generate the initial project structure and install the transient dependencies:
46
+
47
+
```
48
+
my-app/
49
+
README.md
50
+
index.html
51
+
node_modules/
52
+
package.json
53
+
src/
54
+
App.css
55
+
App.js
56
+
favicon.ico
57
+
index.css
58
+
index.js
59
+
logo.svg
60
+
```
61
+
62
+
No complicated folder structures, just the files you need to build your app.
63
+
64
+
Once the installation is done, you can run some commands inside the project folder:
54
65
55
66
### `npm start`
56
67
@@ -68,11 +79,36 @@ It correctly bundles React in production mode and optimizes the build for the be
68
79
The build is minified and the filenames include the hashes.<br>
69
80
Your app is ready to be deployed!
70
81
71
-
### `npm run eject`
82
+
## Philosophy
83
+
84
+
***One Dependency:** There is just one build dependency. It uses Webpack, Babel, ESLint, and other amazing projects, but provides a cohesive curated experience on top of them.
85
+
86
+
***Zero Configuration:** There are no configuration files or command line options. Configuring both development and production builds is handled for you so you can focus on writing code.
87
+
88
+
***No Lock-In:** You can “eject” to a custom setup at any time. Run a single command, and all the configuration and build dependencies will be moved directly into your project, so you can pick up right where you left off.
89
+
90
+
## Why Use This?
91
+
92
+
**If you’re getting started** with React, use `create-react-app` to automate the build of your app. There is no configuration file, and `react-scripts` is the only extra build dependency in your `package.json`. Your environment will have everything you need to build a modern React app:
93
+
94
+
* React, JSX, and ES6 support.
95
+
* Language extras beyond ES6 like the object spread operator.
96
+
* A dev server that lints for common errors.
97
+
* Import CSS and image files directly from JavaScript.
98
+
* Autoprefixed CSS, so you don’t need `-webkit` or other prefixes.
99
+
* A `build` script to bundle JS, CSS, and images for production, with sourcemaps.
100
+
101
+
**The feature set is intentionally limited**. It doesn’t support advanced features such as server rendering or CSS modules. Currently, it doesn’t support testing either. The tool is also **non-configurable** because it is hard to provide a cohesive experience and easy updates across a set of tools when the user can tweak anything.
102
+
103
+
**You don’t have to use this.** Historically it has been easy to [gradually adopt](https://www.youtube.com/watch?v=BF58ZJ1ZQxY) React. However many people create new single-page React apps from scratch every day. We’ve heard [loud](https://medium.com/@ericclemmons/javascript-fatigue-48d4011b6fc4) and [clear](https://twitter.com/thomasfuchs/status/708675139253174273) that this process can be error-prone and tedious, especially if this is your first JavaScript build stack. This project is an attempt to figure out a good way to start developing React apps.
104
+
105
+
### Graduating from create-react-app
106
+
107
+
**If you’re a power user** and are comfortable with configuring build dependencies yourself, you can use this tool as a boilerplate generator.
72
108
73
109
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
74
110
75
-
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
111
+
If you aren’t satisfied with the build tool and configuration choices, you can `npm run eject` at any time. This command will remove the single build dependency from your project.
76
112
77
113
Instead, it will copy all the configuration files and the transient dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point, you’re on your own.
0 commit comments