* Rename production configuration
* Upgrade lint staged
* Merge mode, bail, devtool, and entry
* Merge output settings
* Remove old comment
* Merge some trivial differences
* Disable minimize in development mode
* Only minify html and generate SW in production
* Adjust comment
* Toggle development plugins
* Add missing imports
* Scope settings
* Delete development config
* Use new config file
* Remove unnecessary config import
* Remove react-scripts type reference on eject
* Check for env file
* Check eject for typescript
* Shuffle appTypeDeclarations
* Append internal types on eject
* Ensure lib is published for types
* Adjust comment
* Don't add a bunch of new lines
* File should exist and not be deleted
* Add debug
* Set file explicitly
* Revert "Set file explicitly"
This reverts commit bcd58a36cbd08a71af50b037d8f1fae6c595fb4e.
* Copy file before destroying ourselves
* Revert "Add debug"
This reverts commit 0068ba81c6d79d99788877c9e1b618acd7412dce.
* Specify types in package
* Do not remove types file on eject
* Stop copying types into generated project
* Reference react and react-dom
* Reference node types
* Install node types as well
* Restore copying
* Add Node to the list of installed types
* Reference Jest types
* Remove jest types from install
* Remove jest from CRA install
* Remove Jest reference and let user do this themselves
* Stop copying types file
* Add types key to package.json
* Add appTypeDeclarations and create when missing
* Rename declarations file
* Add Jest back to install instructions
* Minimize diff
* Add TypeScript app creation
* Actually specify new extension
* Check for ts and tsx
* Fix types in default service worker file
* Mirror changes in JS version of SW
* Separate templates
* Use separate template directory
* Remove unused function
* Add a tsconfig file to the template
* Test install of typescript
* Add e2e for TypeScript
* Check for index.tsx to make sure we're not in the JS template
* Ensure TypeScript doesn't leak into normal installs
* Ignore some files
* Print version of CRA
* Fix script
* Add new template
* Move test to correct location
* Use `verifyTypeScriptSetup` routine to populate files
* Ensure tsconfig is created
* Don't resolve TS files if it's not detected in the project
* Automatically create tsconfig.json file for user
* Remove always false check
* Add missing file
* Don't filter paths too early
* Adds the PnP plugin for Webpack to find dependencies when working under PnP
* Adds configuration for jest
* Adds an e2e test for when using PnP
* Avoids cra from crashing at the engine check
* Avoids cra from crashing when initializing react-scripts
* Makes the ownPath portable
* Fixes linting
* Bumps to pnp-webpack-plugin@1.1.0, removes symlinks: false
* Adds a --use-pnp option
* Pin version
* Only install react-scripts in CI mode
* Link locally
* Re-enable all output tests
* 💄 Polish webpack output
* Test sass support message
* Add more tests, but disabled
* Format missing default export error
* Format aliased import
* Why was node-sass required? Odd
* Format webpack rejection error
* Re-enable unknown package test
* Format file not found error and catch module scope plugin error
* Re-disable case sensitive paths
* Intercept and format case sensitive path errors
* Test out of scope message formatting
* Run behavior on macOS
* Run behavior on Node 8 and 10, only Node 8 for macOS
* Add some debugging
* Update matcher
* Only check stderr
* Remove old snapshot
* More debug
* Remove debug
* Add new debug
* Disable test on linux
* Add comment for future
To analyze Webpack bundles, a "stats" JSON is required.
This PR allows that file to be created and saved to the `build`
directory, so that users can use it with Webpack-specific insight
tools like `webpack-bundle-analyzer` without ejecting their
application.
Updated the README to include details for how to do this.
Support for .mjs files added in #3239 did not account for npm libraries which ship native mjs files alongside js files. This accounts for this by ensuring .js files resolve before their accompanying .mjs file. Note that this is not an ideal end state since selecting a .mjs over a .js extension should be the result of whether `import` was used instead of `require()` in a node environment with native ESM support (currently via `--experimental-modules`). Instead, this change just *always* selects a .js extension before the .mjs extension if it exists.
This unbreaks support for using GraphQL (relay, apollo, etc) within create-react-app projects.