All notable changes to this project on v4+
will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v4.1.3 - 2022-10-16
- GitHub community standards & related workflows(#39)
- GitHub workflows for CI.
- Jest config for GitHub Actions -
jest.config.ci.mjs
. - NPM scripts:
lint
to run ESLint from CLI.jest
to replace the originaltest
script with the following changes:- Removed
jest --clearCache
at the beginning as the updated Jest & ts-jest settings execute the dynamic import lines with no issue. - Disabled Node experimental warning message by setting
NODE_NO_WARNINGS=1
.
- Removed
jest-ci
to run Jest with CI config -jest.config.ci.mjs
.
- File extension of Jest & Webpack config files to
mjs
. - Jest config to move
ts-jest
config totransform
(#40) - NPM
test
script to run scriptslint
thenjest
. - Rolled back the value of
moduleResolution
intsconfig
toNode
(means.js
file extension on relative imports is now OPTIONAL). - Enhanced function
pathsToESModuleNameMapper
injest.config.js
to return a less clumsy mapping object.
- Major version updates:
- Minor & patch version updates:
@types/react
-18.0.17
->18.0.21
(#44)@typescript-eslint/eslint-plugin
&@typescript-eslint/parser
-5.33.0
->5.40.0
(#44)electron-builder
-23.3.3
->23.6.0
(#44)eslint
-8.22.0
->8.25.0
(#44)eslint-import-resolver-typescript
-3.4.1
->3.5.1
(#44)eslint-plugin-react
-7.30.1
->7.31.10
(#44)ts-loader
-9.3.1
-> 9.4.1` (#44)typescript
-4.7.4
->4.8.4
(#44)
v4.1.2 - 2022-08-15
- Function
pathsToESModuleNameMapper
injest.config.js
to create the module mappings with ESM relative import with file extension (.js
) syntax support for Jest from the path aliases set intsconfig
.
- Disable ESLint rule
import/no-extraneous-dependencies
on unit test files. - NPM script
test
now clear the cache for Jest before running the test and execute Jest withNODE_OPTIONS=--experimental-vm-modules
flag to allow using dynamic import syntax.
- Cannot find module issue reported by TypeScript server on relative imports in the unit test files after setting up native ES module support in v4.1.0.
- Minor & patch version updates:
electron
-20.0.1
->20.0.2
eslint
-8.21.0
->8.22.0
eslint-import-resolver-typescript
-3.4.0
->3.4.1
v4.1.1 - 2022-08-10
- Cannot find module issue reported by TypeScript server on relative imports after setting up native ES module support in v4.1.0.
- Minor & patch version updates:
@types/react
-18.0.15
->18.0.17
@typescript-eslint/eslint-plugin
&@typescript-eslint/parser
-5.32.0
->5.33.0
eslint-plugin-jest
-26.7.0
->26.8.2
v4.1.0 - 2022-08-07
tsconfig.eslint.json
to avoid ESLint complains for file not being included in project provided.
- Migrated from deprecated
.eslintrc
(ESLint config with no file extension) toCommonJS
file -.eslintrc.cjs
, with the following changes on the configurations:- Different rules and plugins are now applied based on file types, allowing JavaScript files to be linted properly and only using plugins & rules needed on the targeted files.
- Separated config to 4 objects - naming as
baseConfig
,tsConfig
,jestConfig
, andspecialConfig
respectively to maintain the readability on the pervious.eslintrc
. eslint-plugin-import
is now properly configured for both JavaScript and TypeScript files.jest.config.js
&webpack.config.js
are no longer ignored by ESLint.
- Improved the readability of
webpack.config.js
by migrating towebpack-merge
from usinglodash.deepClone()
for merging configuration objects. - Configured Node to resolve JavaScript files as ES modules (
"type": "module"
inpackage.json
). - Refactored Jest and Webpack config files as ES modules.
- Module import order warnings in most modules.
- ESLint warnings & errors on
jest.config.js
&webpack.config.js
.
eslint-import-resolver-typescript
- Enhanced TypeScript support for ESLintimport
pluginwebpack-merge
- Replaced the sections usinglodash.deepClone()
inwebpack.config.js
- Major version updates:
electron
-19.0.9
->20.0.1
tsconfig-paths-webpack-plugin
-3.5.2
->4.0.0
- Minor & patch version updates:
@typescript-eslint/eslint-plugin
&@typescript-eslint/parser
-5.30.7
->5.32.0
eslint
-8.20.0
->8.21.0
eslint-plugin-jest
-26.6.0
->26.7.0
electron-builder
-23.1.0
->23.3.3
tsconfig-paths
-4.0.0
->4.1.0
eslint-import-resolver-webpack
- Not being used in any part of the boilerplatelodash
- Replaced bywebpack-merge
for its' usage inwebpack.config.js
v4.0.0 - 2022-07-22
- Jest as default unit testing framework, with sample test suite for
main
. - Integrated Electron preload pattern.
- NPM scripts:
watch-test
to run Jest in watch mode.next-rc
,next-patch
,next-minor
&next-major
for quick package version number advance.
- Webpack will now take the module path alias from
tsconfig.json
and set it for you thanks totsconfig-paths-webpack-plugin
. Manually set up in Webpack config is no longer needed. tsconfig
now configured to useES2020
features, with module resolution set toNode16
to match the NodeJS version used by Electron.- Migrated to the new
createRoot
API introduced in Reactv18
. - Some APIs changed in Electron
main
entry script:mainWindow
now useloadFile
API instead ofloadURL
.- Replaced
app.on('ready')
withapp.whenReady()
to align with syntax from Electron official quick start guide.
electron-builder
now configured to builduniversal
dmg
for mac, 32 & 64 bitexe
for Windows.- Moved
electron-builder
, Webpack & Webpack-related packages tooptionalDependencies
. - Revamped
README
. - Starting from this version, the maintenance schedule will be on a monthly update basis to keep the package dependencies up to date and keep the development going.
- Allow to use
import default
statement on non ES modules (e.g. React, lodash) by enablingesModuleInterop
intsconfig
. #14
- Mocha in favour of Jest.
- Spectron as it ahs been deprecated. See - Spectron Deprecation Notice
@types/jest
,jest
,ts-jest
,eslint-plugin-jest
- Jest supporteslint-config-airbnb-typescript
- Enhance Airbnb's rules in TypeScriptts-config-paths-webpack-plugin
- Loadtsconfig
path alias into Webpack config
- Major version updates:
react
&react-dom
-17.0.1
->18.2.0
@types/react
-17.0.0
->18.0.15
@types/react-dom
-17.0.0
->18.0.6
@typescript-eslint/eslint-plugin
&@typescript-eslint/parser
-4.11.0
->5.30.7
electron
-11.1.1
->19.0.9
eslint-config-airbnb
-18.2.1
->19.0.4
copy-webpack-plugin
-7.0.0
->11.0.0
css-loader
-5.0.1
->6.7.1
electron-builder
-22.9.1
->23.1.0
html-webpack-plugin
-4.5.0
->5.5.0
style-loader
-2.0.0
->3.3.1
ts-loader
-8.0.12
->9.3.1
ts-config-paths
-3.9.0
->4.0.0
- Minor & patch version updates:
eslint-import-resolver-webpack
-0.13.0
->0.13.2
eslint-plugin-import
-2.22.1
->2.26.0
eslint-plugin-jsx-a11y
-6.4.1
->6.6.1
eslint-plugin-react
-7.21.5
->7.30.1
eslint-plugin-react-hoots
-4.2.0
->4.6.0
lodash
-4.17.20
->4.17.21
webpack
-5.11.0
->5.73.0
webpack-cli
-4.3.0
->4.10.0
-
react-router
,react-router-dom
,@types/react-router
,@types/react-router-dom
- Not being used in any part of the boilerplate
-
@types/mocha
,mocha
,ts-node
- Replaced by@types/jest
,jest
&ts-jest
-
spectron
- Deprecated package; No replacement