{ "description": "A foundation for scalable desktop apps", "private": true, "keywords": [ "electron", "boilerplate", "react", "typescript", "ts", "sass", "webpack", "hot", "reload" ], "homepage": "https://github.com/electron-react-boilerplate/electron-react-boilerplate#readme", "bugs": { "url": "https://github.com/electron-react-boilerplate/electron-react-boilerplate/issues" }, "repository": { "type": "git", "url": "git+https://github.com/electron-react-boilerplate/electron-react-boilerplate.git" }, "license": "MIT", "author": { "name": "moonrailgun", "email": "moonrailgun@gmail.com", "url": "https://github.com/moonrailgun" }, "contributors": [ { "name": "Amila Welihinda", "email": "amilajack@gmail.com", "url": "https://github.com/amilajack" } ], "main": "./src/main/main.ts", "scripts": { "build": "concurrently \"yarn build:main\" \"yarn build:renderer\"", "build:main": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.main.prod.ts", "build:renderer": "cross-env NODE_ENV=production TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.prod.ts", "postinstall": "ts-node .erb/scripts/check-native-dep.js && electron-builder install-app-deps && cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.renderer.dev.dll.ts", "lint": "cross-env NODE_ENV=development eslint . --ext .js,.jsx,.ts,.tsx", "package": "cross-env DEBUG_PROD=true yarn package:nodebug --config.asar=false", "package:all": "yarn package:nodebug -mwl", "package:nodebug": "ts-node ./.erb/scripts/clean.js dist && yarn build && electron-builder build --publish never", "rebuild": "electron-rebuild --parallel --types prod,dev,optional --module-dir release/app", "dev": "yarn start", "start": "ts-node ./.erb/scripts/check-port-in-use.js && yarn start:renderer", "start:main": "cross-env NODE_ENV=development electronmon -r ts-node/register/transpile-only .", "start:preload": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack --config ./.erb/configs/webpack.config.preload.dev.ts", "start:renderer": "cross-env NODE_ENV=development TS_NODE_TRANSPILE_ONLY=true webpack serve --config ./.erb/configs/webpack.config.renderer.dev.ts", "deploy": "ts-node scripts/deploy.ts", "http-server": "ts-node test/http-server.ts", "test": "jest" }, "lint-staged": { "*.{js,jsx,ts,tsx}": [ "cross-env NODE_ENV=development eslint --cache" ], "*.json,.{eslintrc,prettierrc}": [ "prettier --ignore-path .eslintignore --parser json --write" ], "*.{css,scss}": [ "prettier --ignore-path .eslintignore --single-quote --write" ], "*.{html,md,yml}": [ "prettier --ignore-path .eslintignore --single-quote --write" ] }, "browserslist": [], "prettier": { "singleQuote": true, "overrides": [ { "files": [ ".prettierrc", ".eslintrc" ], "options": { "parser": "json" } } ] }, "jest": { "moduleDirectories": [ "node_modules", "release/app/node_modules" ], "moduleFileExtensions": [ "js", "jsx", "ts", "tsx", "json" ], "moduleNameMapper": { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "/.erb/mocks/fileMock.js", "\\.(css|less|sass|scss)$": "identity-obj-proxy" }, "setupFiles": [ "./.erb/scripts/check-build-exists.ts" ], "testEnvironment": "jsdom", "testEnvironmentOptions": { "url": "http://localhost/" }, "testPathIgnorePatterns": [ "release/app/dist" ], "transform": { "\\.(ts|tsx|js|jsx)$": "ts-jest" } }, "dependencies": { "antd": "^5.6.4", "electron-debug": "^3.2.0", "electron-is": "^3.0.0", "electron-log": "^4.4.7", "electron-serve": "^1.1.0", "electron-updater": "^5.0.1", "electron-window-state": "^5.0.3", "express": "^4.18.1", "get-port": "5.1.1", "immer": "^10.0.2", "lodash": "^4.17.21", "react": "^18.1.0", "react-dom": "^18.1.0", "source-ref-loader": "^1.0.7", "zustand": "^4.3.8" }, "devDependencies": { "@pmmmwh/react-refresh-webpack-plugin": "^0.5.6", "@svgr/webpack": "^6.2.1", "@teamsupercell/typings-for-css-modules-loader": "^2.5.1", "@testing-library/jest-dom": "^5.16.4", "@testing-library/react": "^13.2.0", "@types/gh-pages": "^3.2.1", "@types/jest": "^27.5.1", "@types/lodash": "^4.14.191", "@types/node": "^17.0.42", "@types/react": "^18.0.9", "@types/react-dom": "^18.0.4", "@types/react-test-renderer": "^18.0.0", "@types/terser-webpack-plugin": "^5.0.4", "@types/webpack-bundle-analyzer": "^4.4.1", "@typescript-eslint/eslint-plugin": "^5.23.0", "@typescript-eslint/parser": "^5.23.0", "autoprefixer": "^10.4.7", "browserslist-config-erb": "^0.0.3", "chalk": "^4.1.2", "concurrently": "^7.6.0", "copy-webpack-plugin": "^11.0.0", "core-js": "^3.22.5", "cross-env": "^7.0.3", "crypto-browserify": "^3.12.0", "css-loader": "^5.2.6", "css-minimizer-webpack-plugin": "^3.4.1", "detect-port": "^1.3.0", "dotenv": "^16.0.1", "electron": "^18.2.3", "electron-builder": "^23.0.3", "electron-devtools-installer": "^3.2.0", "electron-notarize": "^1.2.1", "electron-rebuild": "^3.2.7", "electronmon": "^2.0.2", "esbuild-loader": "^2.19.0", "eslint": "^8.15.0", "eslint-config-airbnb-base": "^15.0.0", "eslint-config-erb": "^4.0.3", "eslint-import-resolver-typescript": "^2.7.1", "eslint-import-resolver-webpack": "^0.13.2", "eslint-plugin-compat": "^4.0.2", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jest": "^26.2.2", "eslint-plugin-jsx-a11y": "^6.5.1", "eslint-plugin-promise": "^6.0.0", "eslint-plugin-react": "^7.29.4", "eslint-plugin-react-hooks": "^4.5.0", "fast-glob": "^3.2.12", "file-loader": "^6.2.0", "gh-pages": "^5.0.0", "html-webpack-plugin": "^5.5.0", "https-browserify": "^1.0.0", "identity-obj-proxy": "^3.0.0", "jest": "27.5.1", "jest-environment-jsdom": "27.5.1", "less": "^4.1.3", "less-loader": "^10.0.0", "lint-staged": "^12.4.1", "mini-css-extract-plugin": "^2.6.0", "path-browserify": "^1.0.1", "postcss-loader": "^7.0.0", "prettier": "^2.6.2", "react-refresh": "^0.13.0", "react-test-renderer": "^18.1.0", "rimraf": "^3.0.2", "sass": "^1.51.0", "sass-loader": "^12.6.0", "stream-browserify": "^3.0.0", "stream-http": "^3.2.0", "style-loader": "^3.3.1", "tailwindcss": "^2.2.4", "terser-webpack-plugin": "^5.3.1", "ts-jest": "27.1.4", "ts-loader": "^9.3.0", "ts-node": "^10.7.0", "tsconfig-paths-webpack-plugin": "^4.0.1", "typescript": "^4.6.4", "url": "^0.11.0", "url-loader": "^4.1.1", "webpack": "5.73.0", "webpack-bundle-analyzer": "^4.5.0", "webpack-cli": "^4.9.2", "webpack-dev-server": "^4.9.0", "webpack-merge": "^5.8.0" }, "devEngines": { "node": ">=14.x", "npm": ">=7.x" }, "electronmon": { "patterns": [ "!**/**", "src/main/**/*" ], "logLevel": "quiet" } }