Commit Graph

150 Commits

Author SHA1 Message Date
Andreas Cederström
cc36849ca8 fix broken css module support in prod (#4361) 2018-04-27 08:04:51 +02:00
Fabiano Brito
bf3d73c2c6 Add Sass loader (#4195)
* 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.
2018-04-18 10:35:55 -06:00
Ro Savage
ae2cf07249 Update CSS Modules localIndetName (#4192)
* Update CSS Modules localIndetName

* Add missing file to package

* Correct regex

* plz plz plz
2018-04-13 16:14:31 -04:00
Daniel
9a99b5d190 Fix typo and be clearer about ecma settings in uglifyjs options (#4239) 2018-04-02 15:17:24 -04:00
Daniel
2824bf2e15 [next] Revert to use ecma 5 in uglifyOptions (#4234)
* Revert to use ecma 5 in uglifyOptions

* remove explicit ecma version from uglifyOptions settings

The defaults are already what we want

* be explicit of where we use ecma: 8 and ecma: 5
2018-04-02 13:30:30 -04:00
bradfordlemley
2c34d5b66e Use yarn when running inside yarn workspace. (#3997)
* Run yarn after ejecting.

* On eject, choose to run yarn instead of npm if yarn is available.

* Move monorepo to react-dev-utils.

* Fix lint.

* Rename monorepo to workspaceUtils.

* Add react-dev-utils dep for create-react-app.

* getMonorepo -> findMonorepo
2018-02-10 13:07:19 +00:00
Robin van der Vleuten
aaf022ca39 Set the public path to the asset manifest entries (#2544) 2018-02-09 13:14:14 +00:00
Ade Viankakrisna Fadlil
47d2d94118 Ensure workspaces key exists in parent package.json (#3989)
* add default value for globPatterns

without this, the latest alpha broke on start
```
/Users/adeviankakrisnafadlil/Projects/eurecah/node_modules/react-scripts/config/paths.js:130
    .reduce(
     ^

TypeError: Cannot read property 'reduce' of undefined
    at findPkgs (/Users/adeviankakrisnafadlil/Projects/eurecah/node_modules/react-scripts/config/paths.js:130:6)
    at getMonorepoPkgPaths (/Users/adeviankakrisnafadlil/Projects/eurecah/node_modules/react-scripts/config/paths.js:143:22)
    at Object.<anonymous> (/Users/adeviankakrisnafadlil/Projects/eurecah/node_modules/react-scripts/config/paths.js:155:55)
    at Module._compile (module.js:643:30)
    at Object.Module._extensions..js (module.js:654:10)
    at Module.load (module.js:556:32)
    at tryModuleLoad (module.js:499:12)
    at Function.Module._load (module.js:491:3)
    at Module.require (module.js:587:17)
    at require (internal/module.js:11:18)
error Command failed with exit code 1.
```

* also check for pkgPatterns for null

* Update paths.js
2018-02-06 21:27:14 -05:00
Pete Nykänen
779dad5546 Add loader for .graphql files (#3909)
* Add graphql loader to webpack config

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Update README.md

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Update react-scripts README.md

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Add graphql jest transform

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Add integration tests, pin versions in package.json

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Tests expect regexp matchers

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Use strict equal test instead

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Escaping is hard

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Add comment for signifying a different file

* Update docs

* Fix jest config

* Remove node_modules exclusion

* Update README.md

* Inline graphql jest transform

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Update copyright header

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>

* Use .graphql extension only

Signed-off-by: petetnt <pete.a.nykanen@gmail.com>
2018-02-03 15:51:55 +00:00
Ian Sutherland
d0e17316b9 Named asset import for SVG files (#3907)
* Add named asset import for svg files via babel plugin and webpack loader.

* Fix failing e2e test

* Switched to svgr loader

* Updated SVG component test

* Disable named asset import plugin in test environment

* Added tests for including SVG in CSS

* Update tests

* Moved babel plugin config into webpack config
2018-02-02 12:56:57 -07:00
bradfordlemley
b43ad04b88 Add support for yarn and lerna monorepos. (#3741)
* Support for multiple source paths via package.json srcPaths entry.

Initial support for yarn workspace.

Support lerna workspace, fix for when to use template files.

Remove support for specifying srcPaths in package.json.

Re-enable transpilation caching.

* Clean up, use file matching (similar to original) in webpack configs instead of matching function.

* Remove package lock files.

* Fix for eject.
Note: monorepos won't work after eject.
Can be fixed easily with JEST 22.0.?+ which has file pattern matches against realpaths.

* Filter tests to run only tests in monorepo components included by the app.
(Not sure this is desireable, might be cool to be able to easily run all tests in monorepo from one app.)

* Fix conditions for when to use template.

* Fix eject.

* Remove code that is not needed w/ Jest 22.

* Include all cra-comp tests in monorepo instead of trying to include only tests that are dependencies of app.
(tests can be easily filtered via jest cli if desired, e.g. 'npm test -- myapp comp1')

* Pin find-pkg version.

* Hopefully fix jest test file matching on windows by removing first slash.

* E2E tests for monorepo.

* Run monorepo tests in CI.

* Fix and test post-eject build.

* Fix e2e test.

* Fix test suite names in appveyor.

* Include individual package dirs as srcPaths instead of top-level monorepo root.
Fixes build/start after eject.

* Fix running tests after eject.

* Clean up test workspace, add some verifcations.

* Cleanup.

* Try to fix hang when running test on appveyor.

* Don't write babel or lint config to package.json when ejecting.

* Incorporate review comments.
* Simply monorepo pkg finder
* Only include monorepo pkgs if app itself is included in monorepo
* Check for specific tests in e2e

* Fixes for windows.

* Fix for kitchensink mocha tests compiling.

* Add lerna monorepo test.

* Fix lerna bootstrap on windows.

* Incorporate more review comments:
* remove support for lerna w/o yarn workspace
* add react and react-dom as devDeps to comp1 and comp2

* Add monorepo info to user guide.
2018-02-01 20:58:18 +00:00
Michaël De Boey
25184c4e91 Fix links to package (#3898) 2018-01-22 22:16:22 +00:00
Dan Abramov
1cf2248c46 Don't use app node_modules folder as a resolve fallback (#3884) 2018-01-21 19:05:24 +00:00
Joe Haddad
713eec417d Babel 7 disabled code highlighting by default 😢 (#3849) 2018-01-17 22:05:45 -05:00
Andrew
c9b289b64d fix small grammatical typo in webpack config documentation (#3842) 2018-01-17 21:34:08 +00:00
Ian Sutherland
82907fd23c Import SVGs as React components (#1388) (#3718)
* Import SVGs as React components (#1388)

* Updated webpack production config and fixed tests

* Improved Jest SVG file transform

* Improved SVG tests

* Add a comment

* Update webpack.config.prod.js
2018-01-17 19:40:56 +00:00
Joe Haddad
f4988e224a Update comments for accuracy 2018-01-17 10:30:45 -05:00
Ro Savage
fc7c9915b0 Add support for CSS Modules with explicit filename (#2285)
* Add css modules with [name].modules.css file convention

* Add e2e for CSS Modules

* Updated based on feedback

* Change css modules class name to be deterministic and fix licences

* Update css modules class naming convention
2018-01-17 10:20:57 -05:00
Joe Haddad
5d1710aec2 Tell user what browser support their application was built with (#3782)
* Warn about browsers during build

* Better message
2018-01-15 00:08:48 -05:00
Joe Haddad
1013927a38 Allow parsing of ecma 8 2018-01-15 00:08:14 -05:00
Joe Haddad
2ed4a7034f Compile code in parallel (#3778)
* Cheap perf gains

* Whoopsie
2018-01-15 00:08:14 -05:00
Dan Abramov
3d4440812c Compile dependencies with babel-preset-env (#3776) 2018-01-15 00:08:14 -05:00
Clement Hoang
1552949a3b Switch to Babel 7 (#3522)
* Update dependencies in react-scripts

* Add first pass of working dependencies for babel-preset-react-app and react-scripts

* Bump more dependency versions

* Adjust more versions and edit fix options

* Restore functionality of old preset

* Disable Uglify in iframe webpack

* Apply prettier

* Re-enable cache in dev and clean deps

* Lock packages and move babel/core to dep in preset

* Bump babel-jest

* Re-enable uglify

* Nest forceAllTransforms correctly in webpack config

* Install babel-core bridge for jest

* Add jest-cli and babel-core bridge to make tests in react-error-overlay pass

* Re-enable transform-dynamic-import

* Add dynamic import syntax support back

* Use new babel in kitchensink

* Transform modules in test

* Revert "Transform modules in test"

This reverts commit 539e46a1d77259898b7e70d778a5e43fc25edc2a.

* Attempt fix for ejected tests

* try this

* Add regenerator back

* Bump babel deps to beta.34

* Remove bad files

* Use default when requiring babel transform plugin

* Bump deps

* Try the fix?

* Oopsie

* Remove some weird things

* Run Babel on react-error-overlay tests

* Try fixing kitchensink

* Use new API for codeFrame

* Add missing (?) babelrc

* Maybe this helps?

* Maybe fix mocha

* I shouldn't have deleted this 🤦
2018-01-15 00:07:57 -05:00
Jeffrey Posnick
b6aebb9e8f Remove the navigateFallback behavior from the generated service worker (#3419)
* Disables navigateFallback and updates the README

* Typos

* Updated a URL in a comment.
2018-01-15 00:06:24 -05:00
everdimension
813584ff35 Redisable require.ensure() (#3121) 2018-01-15 00:06:24 -05:00
Andrey Sitnik
0a331710aa Move browsers to cross-tool config (#3644) 2018-01-15 00:06:24 -05:00
Joe Haddad
1f18ab7879 Specify ecma version (#3743) 2018-01-15 00:06:24 -05:00
Ade Viankakrisna Fadlil
ff544949b9 Use uglifyjs-webpack-plugin v1 (#3618) 2018-01-15 00:06:24 -05:00
Moos
dccc752cac fix #2223 - [feature] Implement dotenv-expand to accept variable expa… (#3387)
* fix #2223 - [feature] Implement dotenv-expand to accept variable expansion in dot env files

* add to README TOC

* fix readme

* Update README.md
2018-01-09 16:05:36 +00:00
Nils Magnus Englund
bd682de1f6 Fixed typo in webpack.config.dev.js (#3601)
Replaced `it's` with `its`
2017-12-15 13:17:33 -05:00
Ian Sutherland
af291f3cb6 Add mjs and jsx filename extensions to file-loader exclude pattern (#3537) 2017-12-07 13:20:45 -05:00
vannio
801fec286e Fix dead link (#3453)
Fix another dead link
2017-11-15 11:41:07 +00:00
Joe Lim
36cd35d684 Refactor extra watch options regex to react-dev-utils (#3362)
* extra watch options regex to react-dev-utils

* fix regex

* add test

* fix eslint error

* include react-dev-utils test in CI script

* attempt to fix import error

* attempt to fix error on CI

* Update .eslintrc
2017-11-03 22:23:31 -04:00
Dan Abramov
5811d55f70 Use new WebpackDevServer option (#3401) 2017-11-03 18:18:57 +00:00
Nik Nyby
70e0c08ef7 Remove output.path from dev webpack config (#3158)
According to this parameter's comment, it's unused but webpack-dev-server crashes without it. However, webpack-dev-server is running fine for me without this parameter.
2017-10-28 21:58:09 +01:00
Joe Haddad
5c8000f300 Add .mjs support (#3239) 2017-10-28 21:48:42 +01:00
Satya van Heummen
1fa16ace5f Make uglify work in Safari 10.0 - fixes #3280 (#3281)
Implement settings as suggested here:
https://github.com/mishoo/UglifyJS2/tree/harmony#mangle-options

To solve this Safari bug:
https://bugs.webkit.org/show_bug.cgi?id=171041
2017-10-28 21:42:41 +01:00
Dan Abramov
fe4dc744d7 Polyfill rAF in test environment (#3340) 2017-10-28 17:57:27 +01:00
Jonny Buchanan
a0030fcf2d Update style-loader and disable inclusion of its HMR code in builds (#3236) 2017-10-05 20:02:32 -04:00
Joe Haddad
01a0d737c7 Fix Windows compatibility (#3232)
* Windows compatibility

* Use regex for mutli-replace
2017-10-02 23:45:20 -04:00
Joe Lim
1e98d0f428 Watch for changes in src/**/node_modules (#3230)
* Allow the dev server to watch for changes in src/node_modules

* fix eslint error

* fix broken regex

* handle trailing slash edge case for file paths

Closes #2760
Fixes #3223
2017-10-02 22:57:02 -04:00
Sophie Alpert
2e82ebb337 BSD+Patents -> MIT (#3189)
* File headers BSD+Patents -> MIT

* BSD+Patents -> MIT
2017-09-26 10:30:05 +01:00
Kristie Howard
b67ef01ade Update unclear wording in webpack config docs (#3160) 2017-09-19 22:00:44 -04:00
Anthony
6644054fc3 provide empty mock for child_process so importing libraries with it works (#3033) 2017-09-02 13:41:40 -07:00
Tharaka Wijebandara
1df16109c9 Fix error overlay 'Object.assign' issue in IE by including polyfills before webpack client (#3046) 2017-09-01 12:54:58 -07:00
Tharaka Wijebandara
ecd1f0544b Convert react-error-overlay to React (#2515)
* Convert react-error-overlay to React

* Update compile-time error overlay to use react-error-overlay components

 * Refactor react-error-overlay components to container and presentational components.

 * Make the compile-time error overlay a part of react-error-overlay package.

 * Use react-error-overlay as dependency in react-dev-utils to show compile-time errors.

* Run Prettier

* Move the function name fix into StackFrame itself

* Fix clicking on source code snippet to open the code in editor

* Use exact objects + minor style tweak

* Don't linkify frames that don't exist on the disk

* Fix lint

* Consolidate iframe rendering logic

* Remove circular dependency between react-dev-utils and react-error-overlay

* Fix lint

* Fix decoupling of react-dev-utils and react-error-overlay by moving middleware

* Deduplicate identical errors
2017-08-27 19:45:55 -06:00
Ade Viankakrisna Fadlil
1e3a64fa43 Use env variable to disable source maps (#2818)
* use env variable to disable source maps

* Rename to use SOURCE_MAP with explicit value

* Update webpack.config.prod.js
2017-08-08 21:53:37 -04:00
iamdoron
24b18aedd9 Allow importing package.json (#2468)
* Allow importing package.json

* Remove package.json import from App.js template

* fix importing package.json

* Rename variable to reflect path is relative to root

* Check for both package & package.json in ModuleScopePlugin

* Use regex to check relative path to package.json

* Strictly enforce package.json extension on scope plugin

* Add allowedPaths to ModuleScopePlugin ctor and use it to allow app package.json

* Remove package.json import from App.js template

* Add package.json to react-scripts/template, show package version and name in the template

* Remove import package.json from template

* Remove template/package.json and its references in code

* Update ModuleScopePlugin.js

* Update README.md
2017-08-01 22:50:58 -04:00
Andreas Hoffmann
a08eb3b44b Use Rule.oneOf to resolve correct loader (#2747)
* Use oneOf to resolve correct loader

* Add html and json fallthrough again

* Use oneOf to resolve correct loader in dev

* Document file-loaders `js` exclusion

* Remove `jsx` from exclusion in prod config
2017-07-09 21:59:19 +01:00
Đinh Quang Trung
bbbc15dc8e ESLint 4 (#2735)
* Update eslint-loader 1.7.1 -> 1.9.0

* Add eslintPath option

* Update eslint 3.19.0 -> 4.1.1

* Update peer dependencies

* Move eslintPath config to outside @remove-on-eject
2017-07-07 11:40:29 +01:00