- Dependency updates.
- Webpack - Removed
optimization
block because it is redundant. - Webpack - Configured
MiniCssExtractPlugin
to create CSS files undercss/
for consistency. - Used React Hooks.
- Externalized husky config from
package.json
into.huskyrc
and.lintstagedrc
. - Dependency update.
- Replaced
react-router-redux
withconnected-react-router
because the earlier won't work with Redux v6. - Run Prettier on Git pre commit.
- Removed
uglifyjs-webpack-plugin
to use Webpack's built-interser-webpack-plugin
.
- Babel - Upgrade to v7.
- Material-UI - Upgrade to v3.
yarn reinstall
- Added--network-timeout 1000000
to fix "There appears to be trouble with your network connection. Retrying..." error.- Replaced
immutableJs
withimmer
because...- Works great with Flow out of the box. Flow type for
Record
inimmutableJs
is still broken. - Straight up JS when mutating properties.
- No loss of performance.
- ImmutableJS is somewhat defunct.
- Works great with Flow out of the box. Flow type for
- Introduced Prettier to format the code.
- Configured to play well with ESLint and Airbnb rules so that less time spent on fixing linter errors.
yarn reinstall
- Don't clear global cache... just the app'snode_modules
before re-installing it.- Note:
react-router-redux
is deprecated now, but it's left in here until there is a better way to programmatically change routes from middleware instead of pushinghistory
object into actions as recommended by https://reacttraining.com/react-router/web/guides/redux-integration
Package.json
-"sideEffects": false
for tree-shaking purpose. See https://webpack.js.org/guides/tree-shaking/- Webpack - When bundling JS files, move comments into separate files to further reduce file size.
- Dependency update.
- ESLint - Configured to automatically fix "soft" errors when running any Webpack commands and
yarn test
. - Webpack - Configured CompressionPlugin to generate GZIP compression on asset files.
- Replaced
moment
withdate-fns
because the latter has smaller bundle and it creates immutable objects. - Added
recompose
that contains useful React utility function components and HOCs. - Upgraded
material-ui
to v1.0 (Release). - Upgraded
rxjs
to v6.x. - Added
flow:restart
package.json script that will stop Flow server before re-running it.
-
Webpack 4
- Replaced
extract-text-webpack-plugin
withmini-css-extract-plugin
. - Removed
Happypack
. - Removed
style-loader
. - Applied tree-shaking to
vendor.js
to significantly reduce file size from 1.73MB to 768KB.
- Replaced
-
Restructured file organization.
-
When running
yarn ci
, don't run Flow because it has higher chances of breaking when attempting to run Flow server on CI servers such as Jenkins and TFS Build. -
ESLint - Configured rules to allow quotes around number... for example:
const a = { '1919': 'value' };
-
Mocha - Replaced deprecated
--compilers
with--require
. See https://github.com/mochajs/mocha/wiki/compilers-deprecation -
Flow - Flow-typed files.
-
Dependency update.
-
Upgraded
material-ui
to v1.0.- Replaced
roboto-fontface
withtypeface-roboto
. Worked better withmaterial-ui
. - Added
classnames
to make it easier to work with CSS class names sincematerial-ui
has switched tojss
. - Added
material-ui-icons
. - Removed
radium
. - Removed
sass-loader
. - Removed
node-sass
. - Removed
react-tap-event-plugin
. No longer needed withmaterial-ui
.
- Replaced
-
Replaced
redux-saga
withredux-observable
.- Added
redux-observable
. - Added
rxjs
. - Removed
redux-saga
. - Removed
isomorphic-fetch
. RxJS providesObservable.ajax()
out of the box to perform API call. - Removed
redux-saga-test-plan
.
- Added
-
Upgraded
react
to v16.- Added
enzyme-adapter-react-16
. - Removed
react-addons-perf
. No longer supported.
- Added
-
Upgraded
react-router-redux
to v5.- Added
react-router-dom
. - Upgraded
history
to v4.x. - Removed
react-router
.
- Added
-
Replaced
webpack-parallel-uglify-plugin
withuglifyjs-webpack-plugin
because the latter now supports parallel threads and it is tad faster. -
Added
find-cache-dir
for consistent cache location undernode_modules/
for easier cleanup. -
Dependency update.
nyc
failed to exclude directories properly.- Added
.eslintignore
file. - Configured
yarn reinstall
to removenode_modules
dir before reinstalling it. - Cleaned up code.
- Dependency updates.
image-webpack-loader
produced corrupted JPEG files.- Dependency updates.
- Significantly sped up Webpack build time.
- Replaced
npm
withyarn
. yarn start
will automatically open the browser and bring user to the landing page.- Added
postcss.config.js
to fix "No PostCSS Config found" error. See webpack-contrib/postcss-loader#204 - Added
prop-types
to handle "Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead." warning. - Externalized nyc config from
package.json
to.nycrc
. - ESLint configuration - Allowed trailing comma in multi-line object literal or array (works with IntelliJ IDEA 2017).
- Added
cache-loader
to fix HappyPack's "Option 'tempDir' has been deprecated. Configuring it will cause an error to be thrown in future versions." warning. - Removed deprecated
react-addons-test-utils
and addedreact-test-renderer
to getenzyme
working again with new React version. - Dependency update.
-
Dependency update.
-
Fixed deprecation warnings from
image-webpack-loader
. See tcoopman/image-webpack-loader#68 -
Fixed deprecation warnings from
webpack 2
.fallbackLoader
option - Replaced withfallback
.loader
option - Replaced withuse
.
-
Replaced unmaintained
isparta
withnyc
andbabel-plugin-istanbul
.nyc
configuration must reside underpackage.json
becausebabel-plugin-istanbul
will not work properly when placed under.nycrc
.- See istanbuljs/nyc#419
- See istanbuljs/nyc#377
- Instead of hardcoding
include
path underpackage.json
, which prevents dynamic configuration based on user settings,exclude
paths are used.
-
Configured Flow type check.
- Configured Flow type linting.
npm run flow
- Run Flow.npm test
- Run Flow first before running tests.- ESLint rule to ensure
// @flow
exists on the top of all files. - For certain Flow related problems (
record.toJS()
,PropTypes.children
, etc), suppressed with// $FlowFixMe
until they are fixed in the future.
-
Added
yarn.lock
file to accommodate developers using Yarn. -
Simplified module structure to prevent too many "single file in a directory" problems.
-
Combined
npm run ci:clean
,npm run ci:test
andnpm run ci:coverage
intonpm run ci
to prevent Mocha from running twice (once to generate test result file and another to generate code coverage result file). -
scripts/script.js
---require ./src/js/__tests__
should use user configurable path. -
Suppressed "WARNING in asset size limit" warning on
npm run build
. -
Removed commented
DedupePlugin
config because it will be removed in Webpack 2. See webpack/webpack#2644 -
Fixed "Using NoErrorsPlugin is deprecated. Use NoEmitOnErrorsPlugin instead.".
- Dependency updates, particularly react-redux 5.x and webpack 2.2.x.
- Webpack 2.x and tree shaking. Since Webpack 2.x supports
import
natively, modules are no longer converted to CommonJS modules by Babel. - Upgraded to
material-ui
0.16.x. - Added
npm run stats
to createstats.json
that can be loaded to http://webpack.github.io/analyse/ - Enabled HTTPS on webpack-dev-server.
- Dropped
es6-promise
andbabel-plugin-transform-runtime
. Replaced withbabel-polyfill
to have more complete ES6 polyfills. - Configured
rimraf
innpm run reinstall
not to deleterimraf
and.bin
withinnode_modules
to prevent Windows from throwing an error. See isaacs/rimraf#102
- Configured
react-addons-perf
module to work withReact Perf
extension in Chrome.
- Added
Reselect
. - Added
.gitattributes
to ensure end-of-line is always LF instead of CRLF to satisfy ESLint. - Added
.editorconfig
. - Cleaned up code.
- Combined src and test in same dir to make things easier to test.
- Enabled Redux Dev Tools.
npm test ./test/abc
andnpm run test:watch ./test/abc
to run (and watch) only tests within./test/abc
.- Configured
webpack-dev-server
to prevent "No 'Access-Control-Allow-Origin' header is present on the requested resource". - Added
enzyme
andes6-promise
dependencies. - Ref Callback instead of Ref String. See
https://facebook.github.io/react/docs/more-about-refs.html
. - Dependency updates.
history v3.0.0
still doesn't work withreact-router
. See remix-run/react-router#3515
- Tested with
Node.js v6.2.2
. webpack-dev-server
not resolving Roboto font path in CSS file.- Lint both
src
andtest
dirs onnpm test
andnpm run ci
. Lint first before running tests.
npm run test:watch
- cross-platform approach to watch for changes in test files before rerunning the tests.- webpack-dev-server's proxy doesn't work when the context root doesn't have a trailing slash.
npm run ci
doesn't execute ESLint after executing Mocha.- Changed
const { describe, it } = global;
back toimport { describe, it } from 'mocha';
sincemocha --watch
works now. - Dependency updates.
history v3.0.0
still doesn't work withreact-router
. See remix-run/react-router#3515
- Allowed user to override context root when running the production build:
CONTEXT_ROOT=/new-context-root npm run build
.
- Changed
import { describe, it } from 'mocha';
toconst { describe, it } = global;
to allowmocha --watch
to work. See mochajs/mocha#1847. - Dependency updates.
history v3.0.0
doesn't work withreact-router
. See remix-run/react-router#3515
- Git-ignored
dist/
.
Invalid regular expression: /^\api\(.*)\/?$/: Unmatched ')'
with runningnpm start
in Windows.- Cross-platform compatible NPM script. Tested to work on Mac and Windows.
- Updated dependency versions.
- Ported to
choonchernlim-archetype-webapp
.
- Initial.