Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Suggest serve for running in production #1760

Merged
merged 9 commits into from
Mar 8, 2017
Merged

Suggest serve for running in production #1760

merged 9 commits into from
Mar 8, 2017

Conversation

leo
Copy link
Contributor

@leo leo commented Mar 8, 2017

This PR introduces serve as the new suggested way of handling create-react-app projects in production.

However, it also ensures that the docs clearly state that this is only a good idea inside Node.js environments. For all other platforms (or servers that aren't static-only), we still provide the user with a clear explanation of what to do in theses cases.

This closes #1757.

How it looks:

screen shot 2017-03-08 at 08 48 40

@facebook-github-bot
Copy link

Thank you for your pull request and welcome to our community. We require contributors to sign our Contributor License Agreement, and we don't seem to have you on file. In order for us to review and merge your code, please sign up at https://code.facebook.com/cla - and if you have received this in error or have any questions, please drop us a line at [email protected]. Thanks!

If you are contributing on behalf of someone else (eg your employer): the individual CLA is not sufficient - use https://developers.facebook.com/opensource/cla?type=company instead. Contact [email protected] if you have any questions.

@facebook-github-bot
Copy link

Thank you for signing our Contributor License Agreement. We can now accept your code for this (and any) Facebook open source project. Thanks!

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

Are there are any benefits compared to pushstate-server?
How does serve handle media files? Does it have a whitelist?

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

It comes with various handy features built-in (pushstate-server only has the "port" option and two properties for specifying the file/directory to serve):

screen shot 2017-03-08 at 15 29 17

Not sure what you mean with "whitelist", but media files are streamed to the client. I decided to not render a fancy video/audio player or something, because browser usually do this by themselves.

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

I mean stuff like this: scottcorgan/pushstate-server#21.

Do you also have a whitelist of files that should be served? Or do you use file when it exists, and fallback to HTML otherwise?

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

@gaearon Correct. All files that aren't found will fallback to the index.html file, so that the user can provide an error on the client side.

But this only happens when using -s or --single, of course. If you're not serving a single page application (using the flag), you'll get a 404 error for these files.

There's also -i and --ignore for hiding files from the directory listing.

console.log(
` ${chalk.cyan(openCommand)} http://localhost:${process.env.PORT || 9000}`
` ${chalk.cyan(openCommand)} http://localhost:${process.env.PORT || 3000}`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is 3000 the default? It might be confusing for our users who already have npm start running on 3000 by default, and want to test their production build without stopping the devserver.

Copy link
Contributor Author

@leo leo Mar 8, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gaearon Another great thing about serve is that it cares about the port already being in use. If it is, it will show a big red message and use an open one. The URL will be copied to the clipboard automatically in addition.

As the last great thing, it will also show the URL on the network.

Here's how it looks by default:

screen shot 2017-03-08 at 15 40 50

And that's how it looks when the default port is already in use AND no --port is specified:

screen shot 2017-03-08 at 15 41 09

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, that looks cool.

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

If I run serve -s build in a project created with CRA, I see this:

screen shot 2017-03-08 at 2 50 18 pm

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Sorry for the typo!

It should have been serve build -s, because it would have otherwise treated "build" as the value for the -s flag.

But I just fixed this and released it with 4.0.2. Now serve -s build works as well.

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

I still think CRA users will be potentially confused by the default port of 3000. Maybe I don't have a dev server running, launch the prod bundle, close the laptop, later reopen it, see 3000 running, and think it's my devserver. Then I'll be surprised editing files has no effect.

If serve keeps 3000 as default port, I suggest changing the suggested command to show 9000.

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

No problem!

I wanted to do a major release either way sometime (to change something in the API). I also didn't like how most other apps (same for Next.js) were using 3000 and serve always had to choose a different new port in these cases.

So I just released 5.0.0, which switches the default port to 5000.

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

Can we remove the open command from suggested list? Since serve prints the port itself anyway I don't think we really need this.

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Sure. Done!

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

Lint:

  104:11  error  'openCommand' is assigned a value but never used  no-unused-vars

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

While we're at it.. Can you promise it works on Windows just as fine?

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Fixed!

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Checking with a friend, just to be sure...

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Just talked to a friend who has been using it for quite some time on Win now and he confirmed that it works just as fine as on macOS (same for me).

I also ensured that the -s and --single work fine and yes, they do.

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Oh. I noticed that under certain conditions, it doesn't show the output message (but rendering the page works). Fixing!

@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

Does the "pasted to clipboard" thing work on Windows?

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

Copying to clipboard using a package generally doesn't work inside a linux subsystem on win. But IT DOES work on Windows itself, so the answer is: Yes!

We also managed to fix the errors I was talking about and it now works fine on Linux (no clipboard copying there), Windows and macOS! 🙏

Here's the release: 5.0.1 🎉

@gaearon gaearon added this to the 0.9.5 milestone Mar 8, 2017

### Other Platforms (+ Non-Static)

You don't necessarily need Node.js or a static webserver in order to run a `create-react-app` project in production. For example, Python contains a built-in HTTP server that can serve static files:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My only concern here is SimpleHTTPServer isn't really meant for production. Do you think there's a good way to reword it, or an alternative example that would fit better?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! 👍

@gaearon gaearon merged commit 8c00af1 into facebook:master Mar 8, 2017
@gaearon
Copy link
Contributor

gaearon commented Mar 8, 2017

This is good. Thanks for attention to detail.

@leo
Copy link
Contributor Author

leo commented Mar 8, 2017

❤️ 🙏

gaearon pushed a commit that referenced this pull request Mar 9, 2017
* Suggest `serve` for serving the `build` directory

* How to handle it with Node in prod (or other platforms)

* Pretty newline added

* Adjusted default port of static server

* Remove `open` command from output

* Removed constant assignment

* Better explanation for not using having to use a static server

* Cute newline added

* Style nits
@gaearon gaearon mentioned this pull request Mar 9, 2017
sbuzonas pushed a commit to sbuzonas/react-scripts that referenced this pull request May 5, 2017
* Suggest `serve` for serving the `build` directory

* How to handle it with Node in prod (or other platforms)

* Pretty newline added

* Adjusted default port of static server

* Remove `open` command from output

* Removed constant assignment

* Better explanation for not using having to use a static server

* Cute newline added

* Style nits
randycoulman pushed a commit to CodingZeal/create-react-app that referenced this pull request May 8, 2017
* Suggest `serve` for serving the `build` directory

* How to handle it with Node in prod (or other platforms)

* Pretty newline added

* Adjusted default port of static server

* Remove `open` command from output

* Removed constant assignment

* Better explanation for not using having to use a static server

* Cute newline added

* Style nits
@deksden
Copy link

deksden commented May 10, 2017

Why didnt add "serve" script to npm?

@gaearon
Copy link
Contributor

gaearon commented May 10, 2017

We could, but I’m concerned people will try to use it instead of start and miss out on developer warnings. IMO it’s easy enough to add by yourself once you know what it does.

iamlacroix added a commit to trunkclub/tcweb-build that referenced this pull request May 16, 2017
* Heroku Deployment: Adds a note on how to resolve "File/Module Not Found Errors"  (facebook#1260)

* Adds note on how to resolve file or directory not found errors for heroku deployments

* Style tweaks

* Remove interactive shell check when opening browser on start (facebook#1264)

Browser launch can still be suppressed using BROWSER=none

* Only gitignore dirs in root, not deep (facebook#1267)

* facebookgh-1269: Enabling nested folder paths for project name (facebook#1270)

* facebookgh-1269: Enabling nested folder paths for project name

* facebookgh-1269: Added "fs-extra" and removed "path-exists"

* facebookgh-1269: Added e2e test cases to verify nested folder names

* Remove path-exists from dependencies and replace it with fs.existsSync (facebook#1289)

* Downgrading to compatible version of SockJS-Client (facebook#1274)

* Updated react-scripts babel-jest && jest packages to 18.0.0 (facebook#1311)

* Fixes duplicate "is" typo (facebook#1306)

* fix readme: remove double 'we' (facebook#1312)

* Use npm script hooks to avoid && in deploy script (facebook#1324)

* Bump babel-loader version (facebook#1009) (facebook#1309)

* Use yarnpkg alias to run Yarn (facebook#1365)

There’s a common tool included in Hadoop that also has a `yarn` command,
which created issues for users who had Hadoop installed:
* facebook#1257
* facebook#1363

Yarn also installs the command under `yarnpkg` alias (added in
yarnpkg/yarn@cefa9a3)
so we can use `yarnpkg` instead of `yarn` to make it more reliable.

This has no effect on users who don't have Hadoop installed, but those
who have won't see errors from falsely detecting Hadoop Yarn as Yarn
the package manager, and they can now also install Yarn to make use of
our Yarn support without the Hadoop Yarn interfering.

* Use yarnpkg alias to run Yarn (facebook#1365)

There’s a common tool included in Hadoop that also has a `yarn` command,
which created issues for users who had Hadoop installed:
* facebook#1257
* facebook#1363

Yarn also installs the command under `yarnpkg` alias (added in
yarnpkg/yarn@cefa9a3)
so we can use `yarnpkg` instead of `yarn` to make it more reliable.

This has no effect on users who don't have Hadoop installed, but those
who have won't see errors from falsely detecting Hadoop Yarn as Yarn
the package manager, and they can now also install Yarn to make use of
our Yarn support without the Hadoop Yarn interfering.

* Update changelog for 0.8.5

* Publish

 - [email protected]
 - [email protected]

* Add missing import in react-dev-utils README.md (facebook#1369)

* Change console.log for errors and warnings (facebook#1375)

Array.forEach is passed the following parameters:

currentValue
    The current element being processed in the array.
index
    The index of the current element being processed in the array.
array
- https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach

console.log takes multiple arguments. We only want to print the first one, the actually message.

* webpack-dev-server patch for 'still-ok' success status (facebook#1377)

* Document Flow support (facebook#1384)

* Document Flow support

Projects created by Create React App use the `babel-preset-react` which includes
Flow babel plugins which introduces new syntax. This is important for users to know
as it causes what used to be syntax errors to be silently suppressed because they're
valid type annotations in Flow. For example if a user accidentally has `[foo: 'bar']`,
Babel will silently convert it to `[foo]`.

* Make it a bit clearer

* Use a more sophisticated template for end-to-end testing. (facebook#1187)

* Use a more sophisticated template for end-to-end testing.

* Not publish integration tests to npm

* Use "commander" for  cli argv handling

* Handle different scripts version forms and exits without a name given

* Prepare the commands for testing with a template

* Fix dev "template" path

* Add various features to test

* Test various features separately

* Test language features

* Comment unused e2e.sh lines

* Add "development" tests

* Test environment variables

* Test webpack plugins

* Replace kitchensink README

* Switch integration tests from jest to mocha

* Use `fs-extra`

* Use the correct folders

* Do some cleanup

* Print a better message for `--template`

* Test `npm start` with and without https

* Separate fast e2e testing from kitchensink testing

* Hide `--internal-testing-template` (former `--template`) CLI option

* replace two space syntax with <br> tag (facebook#1393)

for consistency :)

* Add causes of dev server not detecting changes (facebook#1422)

* Add causes of dev server not detecting changes

Add causes of `npm start` not detecting changes to Troubleshooting chapter of User Guide

* Reworded slightly

* Update README.md

* Added links to tutorials for integrating cra with an api backend (facebook#1437)

* Added Rails link to User Guide

* docs: unify sections for rails and node backend integration

* docs: fix faulty link and indentation

* Added babel-runtime dependency to deduplicate dependencies when using yarn (facebook#1441)

* Bump Jest version (facebook#1432)

* Readme: Removes experimental from Jest snapshot (facebook#1453)

Per final comment in facebook#372

`Snapshot rendering should actually be pretty stable / useable after React 15.4.1.
See this post for more info.`

* eject: Additionally remove `react-scripts` from dependencies (facebook#1458)

ATM if react-scripts is (erroneously) declared in `dependencies` instead of `devDependencies` or isn't declared at all, the `eject` script will fail half-way. This change makes it more robust, react-scripts will be removed from either, if present.

* E2e jsdom fix (facebook#1470)

* E2E: run tests when react is ready

* Entangle e2e with callbacks

* Remove unused e2e lines

* - import expect and expect flow (facebook#1463)

- code style

* Reflect websocket proxy support on README (facebook#1013) (facebook#1483)

* Reflect websocket proxy support on README

* Add 'the'

* Edit User Guide: Add ESLint config for VS Code users (facebook#1482)

* Add ESLint config for VS Code users

* Update VSC ESLint note to a better solution 

Update VSC ESLint note to a better solution as discussed in Pull Request

* e2e: Reduce complexity of e2e and improve Jest coverage (facebook#1484)

* UX: Explain why build is failing (facebook#1352)

* Update comments for webpack loaders

* Change "OS X" references to "macOS" (facebook#1511)

Updated README.md to refer to the current rebranding.

* corrected minor typo (facebook#1514)

* clarifying the use of custom environment variables (facebook#1513)

* clarifying the use of custom environment variables

* Tweak

* Add missing '\n' to the end of `package.json` file (facebook#1510)

* Make all react app vars accessible in index.html (facebook#1440)

* Make all vars accessiable in index.html

* Fix wrong env provieded to DefinePlugin

* Separate results from getClientEnvironment

* The `string` should be object instead of string

* Fix accessing wrong field

* Changed variables naming to `raw` and `stringified`

* Remove trailing commas

* Add `PUBLIC_URL` env variable for advanced use (facebook#937) (facebook#1504)

* Add `PUBLIC_URL` env variable for advanced use (facebook#937)
* Add support for `PUBLIC_URL` env variable
* Remove unnecessary duplications
* Simplify served path choice logic
* Honor PUBLIC_URL in development
* Add e2e tests

Enables serving static assets from specified host.

* Support relative asset paths for special case (facebook#1489)

* Fix paths in CSS files when homepage is set to "./"

In the production build, ExtractTextPlugin is used to generate a separate CSS file instead of injecting style through JavaScript. This plugin does not work well by default with nested output structure. To fix it, we give it a relative publicPath pointing to the build folder.

* Add section in README to explain how to make builds deployable anywhere

* Apply review requested change

* Apply review changes 2

* readme: Add Advanced Configuration (facebook#1515)

* Add Advanced Configuration section

* Reference package.json instead

* Add HOST, HTTPS, and CI

* Switch wording from Amazon to a CDN

* Add test runner comment

* Add top-level README link

* Simplify wording

* Link to relevant docs

* Link to apps

* Add .env link

* Simpler links

* Add a CI flag note

* Make build exit with error code when interrupted (facebook#1496)

* Make build exit with error code when interrupted

This addresses issue facebook#1493.

Current behavior is that `npm run build` exits code 0 without creating a bundle when interrupted. This change makes the build script catch catchable interruptions and exit with the appropriate error code.

* Better error messages for kill signals

* Don't catch SIGINT

Ctrl+C should exit silently, and already produces a non-zero exit code when sent to the console while `npm run build` is running. Exit code 0 is produced if SIGINT is sent directly to the `node build.js` process, but this is unlikely to happen. A SIGINT handler in `build.js` will also be triggered by Ctrl+C in the console, potentially producing unnecessary noise.

* Style fix

* No changes needed to build.js

Problem is coming from the parent process, `react-scripts`

* Make react-scripts script handle signals

* Clarify context

* Bump lerna

* Add test cases for PUBLIC_URL and relative path (facebook#1519)

* Add test cases to evaluate increased CI time

* Add positive test cases

* Add negative cases

* Test default behavior

* Exit on failure

* Fix test

* Add an annoying nit

* Upgrade babel dependencies

* Don't run CI on Node 0.10 (facebook#1521)

* fix: add yarn gitignores (facebook#1507)

* fix: add yarn gitignores to template

* fix: add yarn gitignores to root

* fix: add wildcard to npm-debug.log ignore

* Upgrade dependencies (facebook#1522)

* Upgrade dependencies

* Re-add caret

* Add CHANGELOG

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Make index.html interpolation instructions less clashing with env syntax

* Add additional info about env variables

* Massage 0.9.0 changelog

* Add release cutters to changelog

* Tweak indentation

* Markdown whitespace fixes

* Some changelog formatting

* Suggest jest-enzyme for simplifying test matchers (facebook#994)

* Suggest jest-enzyme for simplifying test matchers

* Update README.md

* Update README.md

* Fix `test -e` with wildcard arguments. (facebook#1503)

The `test` command fails with multiple arguments when given a unary operator such as '-e'. Add a function that can test one or more files by looping over all files.

* Link to new Sass doc

* Clarify Less/Sass support

* Add a link to supported features

* Add SASS support documentation facebook#1007 (facebook#1008)

* Add SASS support documentation facebook#1007

* Change SASS section title to more generic label

* Fix link in Table of Contents

* Chain build-css with watch-css script, fix typos

* Update Sass and Less naming style

* Fix wording, remove offensive words

* Slightly rewite

* [documentation] how to disable autoprefix feature (facebook#1320)

* added how to disable autoprefix feature in doc

* Just link to the doc

* Added link to Azure deployment tutorial (facebook#1338)

* Correctly Command in README.md (facebook#1275)

* change npm to yarn command

* Keep npm primary option

* reduxjs/redux#2004 List features beyond ES6 supported by create-react-app (facebook#1313)

* reduxjs/redux#2004 List features beyond ES6 supported by create-react-app

* Add more info

* Update language support wording to ES2017

* Tweak syntax doc (facebook#1539)

* Tweak syntax doc

* Shorter version

* Add useful link to react-scripts (facebook#1495)

* Make node version check more robust in e2e.sh (facebook#1295)

* Revert "Don't run CI on Node 0.10" (facebook#1547)

* Revert "Don't run CI on Node 0.10"

* Install after checking node version

* Don't use travis install

* update CSS preprocessor instructions (facebook#1543)

* update CSS preprocessor instructions
- Windows shell users should note that running two programs simultaneously is not supported.

* fix the order of SASS build step
- the suggested build step with integrated CSS preprocessing is wrong. The SASS preprocessor should run first, then the react-scripts build will pick the up-to-date final CSS

* Add tweaks from PR discussion

* Use Yarn latest in e2e (facebook#1534)

* Use Yarn latest in e2e

* Here too

* And here plz

* modified documentation for setting up jest-enzyme (facebook#1562)

* Use https in link to Ignoring files at Github (facebook#1561)

* add --recursive to sass watch script (facebook#1564)

* Mention Windows support explicitly

* Reorder

* MacOS => macOS

* Update README.md (facebook#1573)

Update links to jest expect function.

* Switch from Neo to Neutrino (facebook#1576)

* Switch from Neo to Neutrino

* Edited format to be consistent

* fixes facebook#1584 PORT env variable not always an integer (facebook#1585)

* babel-preset: remove babel-plugin-transform-es2015-parameters (facebook#1598)

babel/babel#4851 is closed

* Add note for using CHOKIDAR_USEPOLLING in virtual machines to enable HMR (facebook#1608)

* Add note for using CHOKIDAR_USEPOLLING in virtual machines to enable HMR

* Use br in react-scripts template README md

* Use br in md for new line breaks

* Update troubleshooting HMR to allow for VMs running Windows

* Fix up the instructions

* Allow --scripts-version to be a git url (facebook#1570)

* Install react, react-dom, and react-scripts at the same time (facebook#1253)

* Install react and react-dom along with react-scripts

- Install react, react-dom and react-script in a same time
- Move react-scripts to devDependencies.

* Check if react, react-dom has been already installed

- To backward compatibility with old CRA’s cli
- In case old CRA doesn’t install react, react-don along with
react-scripts

* Use packageName to find script dependency

- use packageName to find dependency
- fix pathExists.sync

* Check dependencies.react in package.json instead of actual files

* Process exit when dependencies not found

- Show error and exit when dependencies not found.
- Log install show custom package name

* Remove template string

* Install dependencies if template is preseted

* Remove dangling comma

Resolves facebook#1239

* add a comment about NODE_ENV value set to 'production' during build step (facebook#1625)

* add a comment about NODE_ENV value set to 'production' during build step

facebook#790 (comment)

* Move words around

* Update flow configuration documentation (facebook#1518)

* Update flow configuration documentation

The documentation was missing creating the .flowconfig file

* Update flow configuration documentation

Adding in suggested changes

* Wording

* Wording

* Add note about when to import bootstrap CSS. (facebook#1618)

* Add note about when to import bootstrap CSS.

* Tweak

* Document Sass imports

* Fix workflow if react-scripts package is linked via npm-link (facebook#1356)

* add npm-link support

* - remove extra veriable
- simplify condition

* update code after review:
- remove utils/isReactScriptsLinked
- add appPath and ownPath to paths.js (but only for "before eject" export case)

* update code after review:
- remove utils/isReactScriptsLinked
- add appPath and ownPath to paths.js (but only for "before eject" export case)

* update code after review:
- remove utils/isReactScriptsLinked
- add appPath and ownPath to paths.js (but only for "before eject" export case)
- remove "if" block for fs.removeSync(ownPath) at ejec.tjs

* change ownPath value

* Document debugging in the browser. (facebook#1540)

* Document debugging in the browser.

* Styling

* Link to "Debugging in the Editor"

* Adding link to “Customizing” create-react-app (facebook#1121)

Add documentation for customizing Bootstrap theme

* Update index.js (facebook#1603)

To avoid file conflict issue with IJ static web projects

* Remove .bin files defined at react-scripts/package.json after eject  (facebook#1567)

* remove bin files after eject defined at package.json

* add swallowing try/catch

* Bump `recursive-readdir`. (facebook#1560)

* Added a how-to on react-snapshot (facebook#1577)

* Added a how-to on react-snapshot

Added a section with a short description and link to a tutorial on generating static html pages with react-snapshot, and also linked to it from the section on managing the page title.

* Updated link title for react-snapshot overview

* Explained pre-rendering in a more generic way

* Added link to top level README.md, and removed specifics from overview

* Updated html -> HTML

* Updated quotes and apostrophes

* html -> HTML

* Fix link

* NPM version check for tip (facebook#1193)

* Implemented a version check of npm to give a soft tip during the install procedure
and fixed gitignore

* Moved NPM check to method, it is only executed when you use NPM and the version is < 3.

* Minor formatting tweaks

* Simplify the code

* Remove unnecessary change

* Enable eslint caching in development (facebook#1578)

* Enable eslint caching in development

POC for facebook#740. Haven't found any problem, build times improved about 1s on my project and machine.

* Bump eslint-loader to 1.6.3

* move @remove-on-eject block to persist cache config on eject

* Use real build path name in build output (facebook#1478)

Use the configured appBuild value in paths.js instead of hard-coding it to 'build'.  This is helpful for the ejected case where the appBuild path is changed to another folder name.

* adding a note on how to resolve "Could not find a required file." dep… (facebook#1391)

* adding a note on how to resolve "Could not find a required file." deployment errors because of deleted or ignored files

* Tweak

* Unrelated style nits

* Use posix paths for Jest config during eject (facebook#1635)

Resolves facebook#1417 and facebook#1498.

* Setting a dynamic port value for the pushstate-server URL text (facebook#1628)

* Setting a dynamic port value for the pushstate-server URL text after a build is completed

* Fixing merge conflict

* Fix up broken line

* Gracefully handle initial installation error (facebook#1512)

* Gracefully handle initial installation error

* Print out message when problem occurs
* Delete project folder on errors

* Fix directory deleting message

Resolves facebook#1505

* Add changelog for 0.9.1

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Update changelog

* Fix npm test on Windows (facebook#1647)

* Add 0.9.2 changelog

* 0.9.2

* Add a note about known issue

* Merge changelogs

* Format differently

* Set Chrome userDataDir to be under .vscode folder (facebook#1657)

* Fix e2e when used with cold cache (facebook#1667)

Resolves facebook#1666

* Fix e2e-simple (cont.)

* Add appveyor.yml (facebook#1648)

* Add appveyor.yml

* Execute mocha directly in e2e test

* Replace e2e process substitution

* Kill nohup node processes after e2e

* Disable known failing Windows test

* Only build master

* fix react dependency versions during initial install (facebook#1669)

* fix react dependency versions during initial install

* add review remarks

* Remove Windows 0.10 simple test

* add project name validation (facebook#1662)

* add project name validation

* Tweak console output

* fix project cleanup on windows (facebook#1675)

* Revert "Enable eslint caching in development" (facebook#1665)

* add X-FORWARDED headers for proxy requests (facebook#1677)

* Use offline cached version with yarn when it's possible (facebook#1423)

* add --offline flag when we are using yarn and we are offline

* Revert changes to init script

We only run these commands for backward compat mode, in which we wouldn't receive the offline flag anyway

* Don't pass isOnline to init script because it doesn't need it

* Don't ping the Yarn registry if user doesn't have Yarn

* Remove unused/wrong arguments

* Move logs to error handler

* Fix error handling

* Report to the user that they're offline

* Add 0.9.3 changelog (facebook#1683)

* Add "migrating" section for 0.9.3

* Publish

 - [email protected]
 - [email protected]

* False expression should not be in dependencies

* Publish

 - [email protected]

* appveyor: Build all branches

* Suggest CRA 1.2.1 in changelog

* Fixed missing flag in first preprocess command (facebook#1687)

* Re-enable e2e-install directory test

* Suggest to use .env for enabling polling mode (facebook#1698)

* Diagnostic code (facebook#1695)

* Adding diagnostic code as requested by @gaearon

* Oops

* Fix Jest tests for Cygwin

* Improve reliability of port hint. (facebook#1696)

* fixing things for people with the username `cwd`

closes facebook#1694

* combine awk into a single command and add escaping

* pin and bump lerna (facebook#1688)

* Lerna 2.0.0-beta.38 expects packages entry

* Add docs for apache's client side routing setting (facebook#1717)

* Add docs for apache's client side routing setting

* Tweak advice

* Update now.sh deployment instructions. (facebook#1710)

* Update now.sh deployment instructions.

Incorporates changes announced at https://zeit.co/blog/now-static that streamline Now deployments from CRA projects.

* Remove unintentional reference to deployed app.

No emergency; just didn't intend to tout or send traffic to my prototype.

* Add support for ignoreRestSiblings in no-unused-vars (facebook#1705)

* updating eslint to 3.16.1

* add support for ignoreRestSiblings in eslint

http://eslint.org/docs/rules/no-unused-vars#ignorerestsiblings

* updating eslint to 3.16.1 in `react-scripts`

* updating eslint

* missing `^`

* missing ^

* pinning main eslint and updating readme

* Pin ESLint version

* add double quotes to escape spaces in paths in e2e (facebook#1707)

* add double quotes to escape spaces in path

* Change $* to "$@" props to @n3tr

* escape spaces in path for all e2e tests

* Create appveyor.cleanup-cache.txt

* Link Appveyor caches to appveyor.cleanup-cache.txt

* Trigger AppVeyor cache cleanup

* Fix hot reloading for WebpackDevServer after eject (facebook#1721)

* Fix openBrowser() when BROWSER=open on macOS (facebook#1690)

* Fix openBrowser() when BROWSER=open on macOS

* Tweaks

* Create empty package.json in e2e test (facebook#1401) (facebook#1402)

* Create empty package.json in e2e test

Create empty package.json in e2e test while installing packaged CLI to prevent installation issues.

* Use "npm init" to initialize package.json instead of just writing an empty object into it.

* Fix typo

* Skip AppVeyor CI builds for Markdown changes (facebook#1723)

* Skip CI builds for Markdown changes

* I will never learn YML

* Don't use ES6 in a file that should run on Node 4 (facebook#1724)

* Bump jsx-a11y version (facebook#1542)

* Bump jsx-a11y version

* Update package dependecy for jsx-a11y

* Bump version in react-scripts

* Bump ESLint config to 0.6.0 manually

* Fix Node 4 e2e tests (facebook#1730)

* Lint internal scripts with eslint:recommended (facebook#1729)

* Lint internal scripts with eslint:recommended

* Warnings r bad

* Fix ejecting from a scoped fork (facebook#1727)

* Read script names from own bin instead of guessing

This fixes ejecting from a fork that uses a different bin script name.

* Fix ejecting for a scoped react-scripts fork

We shouldn't hardcode react-scripts because fork name might differ.
We also shouldn't rely on it being an immediate child because scoped packages are a level deeper.

* Clarify that own* properties only exist before ejecting

* Properly extract package name for installing tgz of scoped packages (facebook#1706)

* Properly extract package name

* Download package if need be ...

* Oops

* Add e2e test based on facebook#1537, but without specific filename

* Pass packageName through promises

A little bit more verbose but explicit and doesn't rely on shared mutable state.

* Fix up directory name in test

* Tweak failure message

* Fix lint

* extract generic build functions to react-dev-utils (facebook#1726)

* Temp rename

* Rename to change the case

* extract generic build functions to react-dev-utils

* tweak package json files and move removeFileNameHash

* revert removeFileNameHash

* use paths.appBuild in printFileSizes

* use paths.appBuild in removeFileNameHash

* change curried functions to regular functions

* add fs-extra to react-dev-utils deps

* move getDifferenceLabel inside printFileSizes

* inline copyPublicFolder

* combine printFileSizes and removeFileNameHash to fileSizeReporter

* fix typo

* Tweak APIs and fix issues

* Fix heading

* Remove missing file

* Newline

* Newline

* Trailing space

* Update FileSizeReporter.js

* Update build.js

* Bust AppVeoyr cache

* Relax ESLint config peerDependency (facebook#1740)

* Fix internal linting setup and add missing headers (facebook#1741)

* Fix lint

* Fix eject for linked react-scripts (facebook#1736)

* fix eject for linked react-scripts

* path.resolve => resolveApp

* Add changelog for 0.9.4

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Adjust changelog wording

* Switch to preset-env (facebook#1742)

* Switch to preset-env
Disables webpack modules by enabling babel modules to resolve facebook#1638

* Bump babel-core to match babel preset versions

* Add uglify to targets

* Display yarn instead of yarnpkg when creating a new app (facebook#1747)

* Display yarn instead of yarnpkg

* Refactored displayd commands

* Removed testing directory

* Add yarn steps for adding flow (facebook#1756)

[skip ci]

* Suggest `serve` for running in production (facebook#1760)

* Suggest `serve` for serving the `build` directory

* How to handle it with Node in prod (or other platforms)

* Pretty newline added

* Adjusted default port of static server

* Remove `open` command from output

* Removed constant assignment

* Better explanation for not using having to use a static server

* Cute newline added

* Style nits

* Remove 'guard-for-in' lint rule (facebook#1773)

Iterating over an object's keys using `for/in` is idiomatic and it's safe (in all modern browsers) to not check hasOwnProperty as long as the object is a plain object. Can we remove this lint rule?

* Run CI on Node 7; Bump detect-port: 1.0.1 -> 1.1.0 (facebook#1776) (facebook#1783)

* Run CI on Node 7

* Bump detect-port: 1.0.1 -> 1.1.0

* Run AppVeyor CI on Node 7

* Add 0.9.5 changelog (facebook#1784)

* Add 0.9.5 changelog

* Update CHANGELOG.md

* Publish

 - [email protected]
 - [email protected]
 - [email protected]

* docs(babel-preset): Update comment info about babel-preset-env. (facebook#1787)

* Feature/readme-nomoretools (facebook#1799)

* docs: replace TDLR with a meaningful heading

* docs: insert section No additional build tools

* Tweak wording

* Suggest "yarn build" rather than "yarn run build" (facebook#1800)

* Fix for issue facebook#1798: Suggested 'yarn build' versus 'yarn run build'

* remove 'run' from 'yarn test' command as well

* conditionally show 'run' if Yarn is not available

* Tweak the wording

* Allow creation of apps in empty mercurial repos (facebook#1811)

* Allow creation of apps in empty mercurial repos

* Adding .hgignore to list of validFiles for isSafeToCreateProjectIn check

* Adding .hgcheck to list of validFiles for isSafeToCreateProjectIn check

* Link to CRNA

* Make Surge guide more focused

* User Guide: Removed blockquote from code section, due to markdown conflict (facebook#1869)

* Removed blockquote from code section

* Fix the fix

* Fix AppVeyor CI (facebook#1876)

* Fix responsive behavior in iOS 9+ (facebook#1821)

* Adding shrink-to-fit=no for proper responsive handling on Safari 9+

* Check internet connectivity with lookup instead of resolve (facebook#1863)

Resolves facebook#1818

* Update `detect-port` (facebook#1861)

Previous changes caused `detect-port` to pick random port on app startup. Update fixes this regression, `detect-port` pick next available port instead.

* Fix importing linked packages (facebook#1884)

Resolves facebook#1661

* Fix AppVeyor CI (facebook#1868)

* Fix AppVeyor CI (facebook#1876)

* Run AppVeyor on Visual Studio 2017

* Suggest Yarn in HTML template (facebook#1911)

* Fix npm to yarn

* yarn & npm

* Update index.html

* Switch ordering of suggestion

We should suggest NPM first for new users.

* Note that only [email protected] is compatible

* Add sku to the list of alternatives (facebook#1962)

* Update information in User Guide for Enzyme dependency (facebook#1982)

* Ensure proxy url starts with `http://` or `https://` (facebook#1890)

* Update ansi-html to fix facebook#1881

* Add linked modules test (0.9.x) (facebook#1912)

* Add linked modules test

* Keep fallback after eject

* Add note about installing watchman (facebook#1950)

* Add note about installing watchman

* Update CONTRIBUTING.md

* Start the dev server at the specified host

Pass the host from environment variable as argument of the devServer's
listen function instead of a field of options object.
Set the default host to 0.0.0.0 instead of localhost.

* Add folder structure docs for new contributors (facebook#1991)

* Adding folder structure to help people navigate through project. It helps in resolving issues by providing brief description of each package and its purpose

* Removing unnecessary packages from Folder structure heading

* Update CONTRIBUTING.md

* Relax label rules (facebook#1989)


# Conflicts:
#	packages/eslint-config-react-app/index.js

* Update doc server example to work from any directory (facebook#1988)

* Node.js serving with absolute path

It’s safer to use the absolute path of the directory that you want to serve, in case you run the express app from another directory.

* Update README.md

* Fix config discrepancies after merging from upstream v0.9.x

* Minor fixes per feedback for upstream merging

* Fix import from incorrect module

* Release v7.0.0
iamlacroix added a commit to trunkclub/tcweb-build that referenced this pull request Aug 2, 2017
* Bust AppVeoyr cache

* Relax ESLint config peerDependency (facebook#1740)

* Fix internal linting setup and add missing headers (facebook#1741)

* Fix eject for linked react-scripts (facebook#1736)

* fix eject for linked react-scripts

* path.resolve => resolveApp

* Add changelog for 0.9.4

* Published branch 0.9.x

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Adjust changelog wording

* Switch to preset-env (facebook#1742)

* Switch to preset-env
Disables webpack modules by enabling babel modules to resolve facebook#1638

* Bump babel-core to match babel preset versions

* Add uglify to targets

* Add runtime error overlay (facebook#1101)

* Add red box prototype

* Unmount fail node when hot-reloaded (future proofing)

* Slightly improve error reason

* Add Chrome unhandledrejection listener

* Close red box when Escape is pressed

* Construct our own source if not available

* Resolve sourcemaps for friendlier traces

* Allow error to be scrolled

* Only utilize sourcemaps, not the magic. :(

* Make view similar to React Native

* Fix an uncaught syntax error

* Add workaround for Firefox 50

* Add a hint for closing the prompt

* Multiple error support
When there's multiple errors, simply state that there are more instead of re-rendering

* Log any renderer error

* Dim node_modules in display

* Override chrome stack trace limit

* Magic: show me some source!

* Add ability to toggle internal calls

* Switch text from show -> hide

* Change color scheme to something easier on the eyes

* Change UI to be friendlier (thanks @nicinabox)
facebook#1101 (comment)
facebook#1101 (comment)

* Update styles

* Add container inside overlay

* Apply pre style

* Add line highlight

* Add omitted frames ui

* Move yellow to var

* Do all function names in black

* Adapt container based on screen size

* Extract ansiHTML

Use base16-github theme

* Linting

* Add syntax highlighting of errors

* Linting

* Remove white background

* Append new files to package.json

* Target exact version

* White is a little harsh, use same color as red box.

* Fix a bug where omitted frames would never be rendered
(under certain circumstances)

* Show local file path instead of confusing webpack://

* Do not require the entire file

* Remove css file

* Use context size, not a magic variable.

* Fix title regression

* Update dependency

* Do not center text for internal calls

* Temporarily disable links

* Switch internal toggle to 'i'

* Remove unnecessary rules from container style

* Reduce omitted frames font size

* Fix font family in pre > code

* Re-introduce line highlighting

* Object.<anonymous> -> (anonymous function)

* Add ability to see script source

* Add missing ansi mappings

* Remove SIAF

* Skip native functions

* Extract hints div function

* Extract renderers

* Refacor var names

* If source is disabled, don't use the line.

* Allow toggle between source

* Allow bundles to be expanded

* Wow, how did I let this one slip?

* Toggle text for UX/DX

* Make it so clicking Close unmounts the error component

* Do not allow hot reloading once an error is thrown

* Do not wrap lines for small displays

* Fix toggle when additional errors happen

* Make the close a button

* Capture and store errors

* Dispose on render; move additional logic

* Only make code not wrap

* Switch to a view-by-index method

* Allow user to switch between errors with arrow keys

* Fix text while switching between errors

* Update close button style

* Render additional errors at top

* Add left and right arrows

* Make frames pointy

* UTF-8 arrows

* Don't mount unneeded DOM node

* Switch to single changing text for compiled <-> source

* Don't display arrows with only one error.

* Collapsed and expanded

* Make sure the last collapse toggle is appended

* Do not show the stack trace if it doesn't resolve to a file we wrote

* Style container with media queries

* Do not allow x overflow; break words by default.

* Trim off whitespace of lines

* Remove padding since it's not outer-most

* Add footer message

* Extract css file to JS

* Only inject the css when the overlay is up

* Extract red variable

* Remove env

* Update babel-code-frame

* Set force color to true

* Extract out collapse div logic

* Remove arrow field

* Insert a top collapse

* Make browser friendlier

* Absolutify ^

* Make arrows buttons

* Accessify

* Let there be ES5

* Pretty css

* Use forEach where we can ...

* Remove extracted loop

* Fix IE compatibility

* Capture React warnings

* Add source override via React output parsing

* Whoops, fix arguments to crash.

* es5-ify

* Re-enable e2e-install directory test

* Only rewrite line number if it was resolved and leaves a line at bottom

* Rename failFast to crashOverlay

* Disable console proxy

* Appease linter

* Appease more

* Whitelist files that can be embedded through url-loader (facebook#1305)

* Whitelist files that can be embedded through url-loader

Change the current catch-all loader to use file-loader instead of
url-loader, and exclude common image file extensons. Add another url-loader
for images, configured identically to the original catch-all loader.

Part of issue facebook#1293.

* Update tests to reflect change in loader config

* Integration test fix

* More CI fixes

* Work around broken loader-utils behaviour in integration tests

* Revise the documentation around file loading

* Documentation tweaks

* Docs tweak

* Update test now that webpack/loader-utils has been updated

* Update react-scripts to depend on [email protected]

* Bump deps

* Update deps for webpack 2

* Update broken link

* Display yarn instead of yarnpkg when creating a new app (facebook#1747)

* Display yarn instead of yarnpkg

* Refactored displayd commands

* Removed testing directory

* update to modern code style (facebook#1738)

* mv create-react-app/index.js -> create-react-app/creteReactApp.js

* update to modern code style

* var -> cosnt

* set trailing-coma to es5 for prettier

* Create PR_TEMPLATE.md

* Rename PR_TEMPLATE.md to PULL_REQUEST_TEMPLATE.md

* Update PULL_REQUEST_TEMPLATE.md

* Add yarn steps for adding flow (facebook#1756)

[skip ci]

* Add lint-staged + husky for prettier auto-formatting on commit (facebook#1759)

* Clarify philosophy about configuration (facebook#1679)

* Update configuration philosophy (facebook#1768)

* Update configuration philosophy

* Remove explanation

* Suggest `serve` for running in production (facebook#1760)

* Suggest `serve` for serving the `build` directory

* How to handle it with Node in prod (or other platforms)

* Pretty newline added

* Adjusted default port of static server

* Remove `open` command from output

* Removed constant assignment

* Better explanation for not using having to use a static server

* Cute newline added

* Style nits

* Remove 'guard-for-in' lint rule (facebook#1773)

Iterating over an object's keys using `for/in` is idiomatic and it's safe (in all modern browsers) to not check hasOwnProperty as long as the object is a plain object. Can we remove this lint rule?

* Run CI on Node 7; Bump detect-port: 1.0.1 -> 1.1.0 (facebook#1776) (facebook#1783)

* Run CI on Node 7

* Bump detect-port: 1.0.1 -> 1.1.0

* Run AppVeyor CI on Node 7

* Add 0.9.5 changelog (facebook#1784)

* Add 0.9.5 changelog

* Update CHANGELOG.md

* docs(babel-preset): Update comment info about babel-preset-env. (facebook#1787)

* Feature/readme-nomoretools (facebook#1799)

* docs: replace TDLR with a meaningful heading

* docs: insert section No additional build tools

* Tweak wording

* Suggest "yarn build" rather than "yarn run build" (facebook#1800)

* Fix for issue facebook#1798: Suggested 'yarn build' versus 'yarn run build'

* remove 'run' from 'yarn test' command as well

* conditionally show 'run' if Yarn is not available

* Tweak the wording

* Fixes a silent crash when ejecting (facebook#1810)

* Fixes a silent crash when ejecting

* Delete unnecessary files

* Remove references to eslintrc in Webpack config

* Fix lint

* Correct ESLint CLI options

* Link to CRNA

* Make scripts crash on unhandled rejections (facebook#1819)

* Makes end-to-end testing crash on unhandled rejections

* Comment fix

* Allow creation of apps in empty mercurial repos (facebook#1811)

* Allow creation of apps in empty mercurial repos

* Adding .hgignore to list of validFiles for isSafeToCreateProjectIn check

* Adding .hgcheck to list of validFiles for isSafeToCreateProjectIn check

* Make Surge guide more focused

* User Guide: Removed blockquote from code section, due to markdown conflict (facebook#1869)

* Removed blockquote from code section

* Fix the fix

* Fix AppVeyor CI (facebook#1876)

* Provide commander with package name (facebook#1867)

commander to figure it out on its own

* Fix responsive behavior in iOS 9+ (facebook#1821)

* Adding shrink-to-fit=no for proper responsive handling on Safari 9+

* Check internet connectivity with lookup instead of resolve (facebook#1863)

Resolves facebook#1818

* Update `detect-port` (facebook#1861)

Previous changes caused `detect-port` to pick random port on app startup. Update fixes this regression, `detect-port` pick next available port instead.

* Fix importing npm linked libraries (facebook#1359)

* Fix importing npm linked libraries

* Update webpack.config.dev.js

* Update webpack.config.prod.js

* Test for accidental extraneous dependencies (facebook#1825)

* Added test to check for accidental dependencies

* Refactored test into a function

* Removed non capturing group from grep

* Update e2e-installs.sh

* Fix AppVeyor CI (facebook#1868)

* Fix AppVeyor CI (facebook#1876)

* Run AppVeyor on Visual Studio 2017

* Re-disable babel modules transform (facebook#1894)

* Upgrade webpack & related deps

* Disable module transform (requires webpack 2+)

* Duplicate CLI file warning header

* Suggest Yarn in HTML template (facebook#1911)

* Fix npm to yarn

* yarn & npm

* Update index.html

* Switch ordering of suggestion

We should suggest NPM first for new users.

* Note that only [email protected] is compatible

* Add sku to the list of alternatives (facebook#1962)

* Update information in User Guide for Enzyme dependency (facebook#1982)

* Ensure proxy url starts with `http://` or `https://` (facebook#1890)

* Add linked modules test (facebook#1913)

* Start the dev server at the specified host (facebook#1301)

Pass the host from environment variable as argument of the devServer's
listen function instead of a field of options object.
Set the default host to 0.0.0.0 instead of localhost.

* Add folder structure docs for new contributors (facebook#1991)

* Adding folder structure to help people navigate through project. It helps in resolving issues by providing brief description of each package and its purpose

* Removing unnecessary packages from Folder structure heading

* Update CONTRIBUTING.md

* Relax label rules (facebook#1989)

* Update doc server example to work from any directory (facebook#1988)

* Node.js serving with absolute path

It’s safer to use the absolute path of the directory that you want to serve, in case you run the express app from another directory.

* Update README.md

* removed options in UglifyJsPlugin which are equal to the defaults (facebook#1993)

* removed redundant already default options in UglifyJsPlugin

* re-enabled remove comments Uglify option

JSDoc-style comments weren't being removed

* Resolve localhost when offline on Windows (facebook#1839)

* Change proxy localhost to I27.0.0.1 for windows

* Update comment

* resolve localhost IP with DNS lookup on windows

* Fix CI errors

* Promisify addWebpackMiddleware

* Remove Node 6 syntax

* Update addWebpackMiddleware.js

* Actually use the resolved proxy

* Minify and map css (facebook#2013)

Minify and map css

* Fix AppVeyor CI (facebook#2010)

* Update README.md CSS Preprocessor --> node-sass-chokidar alternative (facebook#1987)

* resolves facebook#1986 updates CSS Preprocessor docs to include information on node-sass-chokidar alternative to node-sass

* Update README.md

* Turn off CSS source maps

* Use custom sourcemap file names

* Modularize and extract crashOverlay to iframe (facebook#1842)

* Modularize and extract crashOverlay to iframe

* Do not break words

* Disable warning overlay

* Use CJS imports

* Upgrade webpack deps and use strictExportPresence (facebook#2028)

* Fix Netlify heading level. (facebook#2033)

* Use prop-types package (facebook#2029)

* Update README.md (facebook#2040)

* Define dev chunk names (facebook#2050)

* Define dev chunk names

Fixes facebook#2046

* Add comment

* Suggest to create .eslintrc for IDE lint plugins (facebook#2054)

* Suggest to create .eslintrc for IDE lint plugins

* Update README.md

* Update README.md

* Update README.md (facebook#2058)

* Update README.md

* Update README.md

* Fix instructions for serving with now (facebook#2052)

* Fix instructions for serving with now

Not sure if new, but the `--single` flag is now important.

* Keep it shorter

* Temporarily pin Yarn to fix CI

* Fixed documentation link for storybook in README.md (facebook#2081)

* Forbid using window properties as global variables (facebook#1840)

* Forbid using window properties as global variables

* Change globals list to match Standard.

* Fix globals

* Ignore the yarn cache directory (facebook#2063)

* Revert "Forbid using window properties as global variables" (facebook#2099)

* Revert "Ignore the yarn cache directory (facebook#2063)"

This reverts commit 94149c7.

* Revert "Forbid using window properties as global variables (facebook#1840)"

This reverts commit 5a7d8e8.

* Minor tweaks for crash overlay (facebook#2101)

* Bump minimal Node version to 6 (facebook#1897)

* Bump minimal Node version to 4.7.0

* Bump minimal Node version to 4.7.0

Modified additional files that needed a bump to 4.7.0 minimum node version

* Bump minimal Node version to 4.7.0

Reverse changes to packages/create-react-app/index.js as this file needs to continue to work on Node 0.10+

* Bump minimal node version to 6

* Bump minimal node version to 6

* Bump minimal node version to 6

* Prettify errors and warnings for Webpack 2 (facebook#2113)

* Prettify errors and warnings for Webpack 2

* Update formatWebpackMessages.js

* Do not parse `.eslintignore` (facebook#2115)

* Add `react-error-overlay` package (facebook#2111)

* ༼ つ ◕_◕ ༽つ stack-frame-overlay

* Fix linting

* Remove auto overlay

* Fix e2e

* Pull in the rest

* Appease flow

* Correct dep

* Remove old repo references

* Check flow on test

* Test overlay in e2e

* Add cross env

* Rename package

* Make sure it gets built post-install

* Update the README

* Remove extra builds now that there's a postinstall script

* Revert "Remove extra builds now that there's a postinstall script"

This reverts commit 8bf601d.

* Remove broken script

* Fix some dev ergo

* Default to 0.0.0.0 (facebook#2117)

* Omit ESLint warnings when there are ESLint errors (facebook#2120)

* Adds tests for the overlay (facebook#2118)

* Add get-source-map tests

* Fixtures shouldn't be formatted

* Add mapper tests

* Add stack-frame tests

* Add more util tests

* Add unmapper tests

* Add parser tests

* Switch to snapshots

* Snapshot more

* disable ignoring unused vars prefixed with _ (facebook#1763)

* Bump React in development (facebook#2122)

* Make error box messages friendlier (facebook#2123)

* Only show first error (facebook#2125)

* Fix a bad condition

facebook#2123 (comment)

* Update Sass docs (facebook#2114)

* update readme with fix from facebook#1939

* update with better globbing

* added note

* updating with a note and reverting previous changes

* how about this?

* refactor

* added note about new files back in after verifying locally

* spaces back in, sorry was my editor!

* removed note about new files :)

* added bullet about new files issue currently open on node-sass

* Feature/different env config files facebook#1343 (facebook#1344)

* support different env configs.

* fomrat code

* Hide doc

* Slightly rework the PR

* Remove .env in default template
* Use just one entry in the paths
* Unify env.js and loadEnv.js

* Oops, forgot these folks

* Add note about yarn.lock in CONTRIBUTING.md (facebook#2135)

* Add note about yarn.lock in CONTRIBUTING.md

* Update CONTRIBUTING.md

* Update README.md (facebook#2137)

* Improve unmapper file heuristic, add limited warning support, and ignore internal errors (facebook#2128)

* Browser sort is not stable

* Fix ordering of final message

* Register the warning capture

* Display only createElement warnings

* Use different method name

* Fix regression

* Ignore errors with only node_module files

* Ignore null files, too

* Revise count

* Revise warning

* Update overlay.js

* Add support for facebook/react#9679

* Use absolute paths

* Trim path if it's absolute

* Make sure it's an absolute path

* Oops

* Tweak for new behavior

* Make it safer

* More resilient warnings

* Prettier output

* Fix flow

* Skip React frames that are too close (facebook#2143)

* Click to view source from error overlay (facebook#2141)

* Click to view source

* Update package.json

* Update package.json

* Fix lint

* Work around weird inferred name in Chrome

* Don't collapse unintentional top-level errors (facebook#2145)

* Don't collapse unintentional top-level errors

* Linkify internal stack frames too

* Add a missing color mapping (facebook#2146)

Closes facebook#2127

* Blacklist confusing global variables (facebook#2130)

* Blacklist confusing global variables

* Blacklist globals

* Fix kitchensink test to lint

* Edit the list

* Use no-restricted globals for this

* Temporarily fork detect-port (facebook#2147)

* Temporarily fork detect-port

* Fix get process id

* Use different package

* Unnecessary var

* Replace prompt function from react-dev-utils with Inquirer.js. (facebook#1772)

* Print error messages for editor integration (facebook#2150)

* Add custom eslint formatter (facebook#2138)

* Add custom eslint formatter

* Add formatter docs

* Update formatter docs

* Slightly tweak it

* Update README.md

* Fix CI

* Tweak error and warning output (facebook#2152)

* Tweak error and warning output

* Add a colon

* Focus on line in eslint messages

* Fix CI

* [Internal] Warn for missing brackets (facebook#2151)

* Warn for missing braces

* Overlay, too

* Allow custom proxies in development (facebook#1790)

* Change proxy handling to allow multiple proxies to be specified in package.json.

* Up webpack-dev-server to 2.4.2

Webpack Dev Server version 2.4.2 handles the external websocket upgrade
for all proxies

* Fix the listen() call

* Switch to correct default host

* Remove promises and extract to react-dev-utils

* oops

* Add support for IPv6 hosts

* Prefer localhost as an address (facebook#2154)

* Show network address on start (facebook#2155)

* Show network address on start

* Tweak visual representation

* Bump webpack packages

* Internal Webpack paths should not be clickable

* Make error/warning output more useful (facebook#2161)

* Fix lint

* Fix CI

* Update to Jest 19 (facebook#1614)

* Upgrade to Jest 19

* Use testMatch

* Correct version

* Put console.stack() behind a react vendor prefix (facebook#2164)

Matches what we did in facebook/react#9679

* Unpin Yarn (facebook#2124)

* Unpin Yarn

* Try 0.24.2

* Update e2e-simple.sh

* ESLint Config: Upgrade eslint-plugin-jsx-a11y and activate more rules. (facebook#2163)

* ESLint Config: Upgrade eslint-plugin-jsx-a11y and activate more rules.

* Try to fix Lerna

* Update README.md

* Remove html-has-lang

* Update README.md

* Removing extra `eslint` rules (facebook#2064)

Removing a stylistic lint rule

* Support hoisting react-scripts and add require.resolve() to loaders (facebook#2166)

* Support hoisting react-scripts

* require.resolve() loaders and configs

This makes it so that loaders and configs are resolved relative to the config rather than to the app. This seems to make more sense to me.

* Support node scripts in BROWSER (facebook#1590)

* Support node scripts in BROWSER

Modify OpenBrowser.js to run node scripts specified with the BROWSER environment
variable . If the value of the BROWSER environment variable ends with '.js' a
child process is spawned to execute the script with node.js. Any
arguments passed to npm start are also passed to this script, as well as
the url where the app is served.
The command executed in the child process is:

node <pathToScript> [OPTIONS] <url>

Update User Guide.

* Tweak code style

* Pin dep

* Comment out 0.10 docs

* Enable CSS sourcemaps in production (facebook#2168)

* Adding plugin postcss-flexbugs-fixes and flexbox: 'no-2009' to Autoprefixer (facebook#1771)

* Adding postcss-flexbugs-fixes

Using postcss-flexbugs-fixes to fix all flexbug's issues.

* Adding flexbox: 'no-2009' to Autoprefixer

It will add flexbox prefixes only for final and IE versions of
specification.

* Try to fix CI

* Try again

* Only run tests in <rootDir>/src (facebook#544) (facebook#1808)

* Only run tests in <rootDir>/src (facebook#544)

* updates Jest to 19.0.2

* removes testPathIgnorePatterns from jest config

* adds testMatch to jest config to only match files in src

* Bump babel-jest to 19.0.0 to match jest 19.0.2

* Bump dependencies (facebook#2170)

* Bump dependencies

* Bump CSS deps

* Somehow I missed dotenv

* Bump ESLint deps

* Tweak ESLint rules

* react-dev-utils/openBrowser now supports urls with 2+ params (facebook#2076)

* react-dev-utils/openBrowser now supports urls with 2+ params

Fixed facebook#2047

* react-dev-utils/openBrowser: encode url before open the browser

* Jest 20 (facebook#2171)

* Make coverage and snapshot Jest options overridable in package.json (facebook#1830)

* Override Jest config collectCoverageFrom with package.json

* Protect against overriding other options

* Better error message

* Create Jest config early on eject

* Tweak wording

* Dry it up

* Bump versions

* Resolve regenerator runtime relative to react-scripts (facebook#2175)

* Fix Flow hopefully

* Disable require.ensure() warning (facebook#2177)

* Reenable require.ensure()

* Tweak colors for better contrast on Windows (facebook#2180)

* Handle errors from port detector (facebook#2182)

* Tweak lint rules (facebook#2186)

* Ignore Moment.js locales by default (facebook#2187)

* Ignore Moment.js locales by default

* Update README.md

* Disable Yarn on CI temporarily

* Add module scope plugin (facebook#2189)

* Add module scope plugin

* Oops

* Add comments

* Check windows seps too

* More descriptive error

* Document it

* Webpack config typo (facebook#2193)

* Webpack config typo

* Webpack config more typo

* PWA-ification, via SWPrecacheWebpackPlugin + manifest.json (facebook#1728)

* sw-precache-webpack-plugin, SW registration, manifest.json

* Documentation + a few SW tweaks.

* Added an unregister method, too, just in case.

* More info for the READMEs.

* Add minify to SWPrecacheWebpackPlugin config

* Fix SWPrecacheWebpackPlugin typo

* Fix file references in READMEmd

* Add instructions for testing service-worker locally

* Review feedback

* Some additional PWA metadata

* Use sw-precache-webpack-plugin v0.9.1 for node >=4.0.0 support

* Review feedback.

* Add manifest.json context in a comment.

* Fix typo

* Downgrade to sw-precache-webpack-plugin 0.9.1

* Hide changes in README until 1.0

* Hide changes in User Guide until 1.0

* Hide more docs

* Tidy up some build logs (facebook#2197)

* Bump Jest to 20.0.3 (facebook#2196)

* Test module scoping (facebook#2198)

* Correct readme

* Add tests

* Update README.md

* Disable Uglify reduce_vars (facebook#2200)

* Tweaking error overlay styles (facebook#2201)

* Tweaked overlay styles

* Tweaked pre-style

* Clicked to background overlay dismiss

* Tidied up styles tobe more mobile Safari friendly

* Re-enabled pre-wrap

* Margin fixes

* Base font-size 10 -> 11px

* Error overlay is full-screen now based on feedback

* Make "N errors on the page" visible again

* Fix bottom margin of frame location and lack of tab nav

* Add tooltip to close button

* Bring compile error styles closer to runtime overlay

* s/when/if/

* Refactor and improve build output (facebook#2202)

* Tweaked error overlay styles (pt2) (facebook#2208)

* Fixed several of the issues and nits from PR:

* Moved margin between header and file name to header, so when content was scrolled, the header would remain more separate
* Made build-time and runtime overlays better match
* Secondary error <pre> style now uses yellow bg instead of red
* 'Scrollable Header' (see above comment to why this is necessary) but I did increase the max-height from 35% to 50%.
* Fixed header and 'X' button vertical alignment

* Temporary stack margin fix

* Move "N errors" to the top

* Move more logic from react-scripts to react-dev-utils (facebook#2209)

* Show warnings for builds

* Move WebpackDevServer helpers into react-dev-utils

* Fix vertical alignment of close button

* Cleaned up next/prev error arrow styles; arrows wrap around when clicked now (facebook#2210)

* Add temporary support for Node 4.x to global CLI (facebook#2214)

* Replace text-align: start with left to fix Edge (facebook#2215)

* ES6 syntax (facebook#2213)

* Move error overlay middleware (facebook#2216)

* "rule keywords" => "keywords"

* Improve interaction between compile and runtime overlays (facebook#2219)

* Better document PWA stuff

* Enable 1.0 docs (facebook#2220)

* Uncomment merged PRs

* Switch to br

* Update some webpack links

* Add a little about section for PWA

* oops

* fast on subsequent visits

* Add manual proxy config instructions

* hint package.json

* Change to js for comments

* Tune wording

* Add documentation about using code splitting (facebook#1801)

* Add documentation about using code splitting

* Revise docs a bit

* Update README.md

* Update README.md

* Update README.md

* Swap changelogs (facebook#2222)

* Swap changelogs

* Update and rename CHANGELOG.md to CHANGELOG-0.x.md

* Update and rename CHANGELOG-1.x.md to CHANGELOG.md

* Update CHANGELOG.md

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Update CHANGELOG.md

* March -> May

* Fix shortcut handling in react-error-overlay (facebook#2238)

* Add explicit package dependence (facebook#2243)

Closes facebook#2232

* Fix read of .env variables (facebook#2242)

* Gracefully shut down the server on signals (facebook#2246)

* Shame on me

* Correct docs on which .env.* files are supported. (facebook#2247)

* Correct which .env. files are referenced in docs

* Highlight this is not available until 1.0.0

* Formatting

* Update README.md

* Update README.md

* Hide React Storybook from the User Guide while it's incompatible (facebook#2252)

* Hide React Storybook from the User Guide while it's incompatible

* Update README.md

* Show customized build path for serve instruction (facebook#2229)

* Show customized build path for serve instruction

* Remove cyan

* Ignore .env.local in test environment (facebook#2250)

* add noscript to template's index.html (facebook#2224)

* add noscript to template's index.html

* Tweak message

* Work around Windows path issue in SWPrecacheWebpackPlugin (facebook#2255)

* Turn off operator-assignment stylistic rule (facebook#2256)

* update readme with example of include path (facebook#2258)

* update readme with example of include path

* Update README.md

* update reference with new name (facebook#2259)

s/adding-images-and-fonts/adding-images-fonts-and-files/

* Additional fix to service worker config for "homepage" field (facebook#2262)

* Always resolve NODE_PATH (facebook#2261)

* Always resolve NODE_PATH

* Update env.js

* Fix a bug on empty NODE_PATH (facebook#2264)

* Shut down server silently, as it is too noisy

* Add changelog for 1.0.1 (facebook#2266)

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Fix missing dependency (facebook#2269)

* Adding missing dependency

* Pinning text-table dependency

* Describe build in less fluffy terms

* Update README.md

* Update README.md

* Update CHANGELOG.md

* Add WSL support to launchEditor utility (facebook#2282)

* Only enable host check if you use proxy, and add a way to opt out of it (facebook#2288)

* Disable host check if you don't use proxy

* Add a way to opt out and document it

* Ejecting should ensure you have clean git status (facebook#2221)

* Ejecting should ensure you have clean git status

* Rename function

* Style

* Minor changes

- extract function
- exclude error output for missing git
- more descriptive error message
- no need to mutate answer
- fix answering "no" to return 0 exit code

* Add missing license headers

* Wrap console calls into a check (facebook#2290)

* Provide a no-op SW that will be served by the dev environment. (facebook#2276)

* Provide a no-op SW that will be served by the dev environment.

* Hide no-op service worker from user

* Remove unnecessary dependencies(facebook#751) (facebook#2283)

* Remove unnecessary dependencies(facebook#751)

* Sort alphabetically

* Add changelog for 1.0.2 (facebook#2291)

* Publish

 - [email protected]
 - [email protected]
 - [email protected]

* Roll back to an older version of case-sensitive-paths-webpack-plugin (facebook#2314)

* Wrap console calls into a check (facebook#2301)

* Wrap console calls into a check

* Add another check

* Remove `flowtype/require-valid-file-annotation` temporarily. (facebook#2311)

Until this issue (gajus/eslint-plugin-flowtype#165) is
fixed we're disabling `flowtype/require-valid-file-annotation`.

* Ensure address is private (facebook#2297)

* Ensure address is private
Resolves facebook#2296

* adjust rule

* Update WebpackDevServerUtils.js

* Changelog for 1.0.3 (facebook#2315)

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Remove tarec from README (facebook#2323)

I no longer support this package.

Create-react-app is so great I can no longer call tarec a credible alternative 😄

* 1.0.4 changelog

* Publish

 - [email protected]
 - [email protected]

* Remove connect-history-api-fallback and cross-spawn dependencies from react-scripts (facebook#751) (facebook#2320)

* Allow declaring variables before use in a scope above (facebook#2325)

* Limit console warnings to 5 files at most (facebook#2327)

* Files in public/ folder should not be requested through proxy (facebook#2326)

* Add changelog for 1.0.5 (facebook#2329)

* Add "Migrating" section

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Add missing files to README (facebook#2334)

* add missing files

* Update README.md

* Update CHANGELOG.md

* Don't resolve localhost if on network (facebook#2332)

* Don't resolve if on network

* Update WebpackDevServerUtils.js

* Resolve flow errors in eslint JSX a11y (facebook#2346)

* Upgraded eslint-plugin-jsx-a11y to 5.0.3 to take advantage of
  d70ac7d7975819e7a52b85465ec67a0d93eb962a

* Add navigateFallbackWhitelist /__* to SW Precache config (facebook#2347)

* Add navigateFallbackWhitelist /__* to SW Precache config

* Add comments

* Add changelog for 1.0.6 (facebook#2348)

* Publish

 - [email protected]
 - [email protected]
 - [email protected]
 - [email protected]

* Update webpack to v2.6.0 in react-scripts (facebook#2349)

* Fix broken links (facebook#2350)

* Print file sizes with correct build folder path. (facebook#2361)

* Print file sizes with correct build folder path.

* Just use the print the basename.

* Update README.md for `now` deployments (facebook#2372)

Simplified steps for deploying app to `now` as a static site. No need to `serve` script in `package.json` file. As of May 15, 2017, all static deployments on `now` are free and unlimited.

* Removed the overriding of reduce_vars to false since webpack v2.6.0 included the fixed for Uglify bug (facebook#2351)

* Disable comparisons feature in uglify compression in production (facebook#2379)

* Disable a micro-option in uglify that appears to be buggy

See facebook#2376

* wrong plugin

* Add a comment

* Consistently set environment variables (facebook#2382)

* Update webpack to 2.6.1 (facebook#2383)

* Add changelog for 1.0.7 (facebook#2384)

* Publish

 - [email protected]
 - [email protected]
 - [email protected]

* Bump beta version

* Fix deploy script env vars

* Bump react-scripts beta version

* Fix Sass transforms and module mapping in the Jest config

* Update babel-preset-trunkclub beta version; add code coverage to tests

* Update Flow dependency, remove old devDeps, bump beta version

* Update the v8 upgrade docs

* Update Jest config

* Run prettier on build-module script before merging TC upstream

* Update upgrade docs

* Release v9.0.0
@gaearon
Copy link
Contributor

gaearon commented May 29, 2018

vercel/serve#379

:-(

@leo
Copy link
Contributor Author

leo commented May 29, 2018

What @gaearon mentioned above is now solved as per this. You can use -l <port> for setting the port and --single (just like before) for getting a rewrite-preset for serving an SPA.

Sorry for the inconvenience we've caused!

@lock lock bot locked and limited conversation to collaborators Jan 19, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Suggest serve for running in production
4 participants