* 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
* 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
* Switch back to babel-loader
* Preserve existing caller options. Use Object.assign instead of object spread.
* Updated filename in package.json
* Update comment about cache identifier
* Update macro check to use a regex
* Move macro check regex out of function
* Remove runtime alias hack
* Pass absolute path to preset
* Change comment
* Give a relative path to absolute runtime
* Clean up config
* Tweak again
* Make absolute runtime the default
* Remove runtime package from error overlay
* Add workbox service worker functionality
* Remove debug
* Set workboxConfig for when there isn't a cra config file
* Remove workbox configuration options as c-r-a isn't planning on supporting optional configuration
* Remove c-r-a config path from paths
* Add workbox service worker functionality
* Remove c-r-a config path from paths
* Inline the webpack workbox config
* Use settings reccommended by @jeffposnick
https://github.com/facebook/create-react-app/pull/4169/#issuecomment-422963072
* Fallback to public url index.html, not root
* Add one comment
* Update comment
* Correct regex
The `formatter` option is incompatible with with `thread-loader`.
The `formatter` option previously accepted a function which was lost during JSON serialization.
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.
- [x] Utilize webpack 4 development and production modes
- [x] Upgrade webpack dev server
- [x] Webpack 4 compatible release of thread-loader
- [x] Webpack 4 compatible release of HtmlWebpackPlugin
- [x] Webpack 4 compatible release of SwPrecacheWebpackPlugin
- [x] Webpack 4 compatible release of WebpackManifestPlugin
- [x] Update README
- [x] Update WebpackDevServerUtils
- [x] Update InterpolateHtmlPlugin
- [x] Update ModuleScopePlugin
- [x] Update WatchMissingNodeModulesPlugin
- [x] Move UglifyJS options to webpack 4 optimize
- [x] Move InterpolateHtmlPlugin to make it tapable on HtmlWebpackPlugin
- [x] vendor splitting via splitChunks.splitChunks (https://twitter.com/wSokra/status/969633336732905474)
- [x] long term caching via splitChunks.runtimeChunk (https://twitter.com/wSokra/status/969679223278505985)
- [x] Make sure process.env.NODE_ENV is proxied correctly to `react-error-overlay`
- [x] Implicit webpack.NamedModulesPlugin in dev config as its default in webpack 4
- [x] Disable webpack performance hints as we have our own filesize reporter
- [x] Replace ExtractTextPlugin with MiniCssExtractPlugin
- [x] Switch to css whole file minification via OptimizeCSSAssetsPlugin rather than per module css minification to gain performance
* Installs and adds sass loader task in webpack for dev environment.
* Uses Timer's branch of sass-loader without node-sass dependency.
* Adds method for handling SASS modules.
* Fixes extension of excluded files when looking for scss modules.
* Adds support for both .scss and .sass extensions.
* Uses ExtractTextPlugin with sass-loader to bundle styles for the production build.
* Bundles SASS modules for the production build.
* Uses the latest version of sass-loader.
* Adds function to create different rules for style loaders in dev environment.
* Abstracts style loaders to a common function to avoid repetition.
* Simplifies the common function that creates style loaders.
* Creates assets for testing SASS/SCSS support.
* Creates mock components and unit tests for SASS and SCSS with and without modules.
* Creates integration tests for SASS/SCSS support.
* Adds node-sass as a template dependency so sass-loader can be tested.
* Includes sass tests when test component is mounted.
* Fixes asserted module name for sass and scss modules tests.
* Removes tests against css imports in SCSS and SASS files.
* Updates sass-loader to v7.
* Uses getCSSModuleLocalIdent from react-dev-utils.
* Fixes tests to match the use of getCSSModuleLocalIdent.
* Improves readability of getStyleLoader function.
* Uses postcss after sass.
* Refactors dev config to simplify common function for style loaders.
* Refactors prod config to simplify common function for style loaders.
* Use importLoaders config according to css-loader docs.