express-react-boilerplate
Version:
Express react boilerplate
218 lines (217 loc) • 6.72 kB
JSON
{
"name": "express-react-boilerplate",
"version": "4.2.1",
"description": "Express react boilerplate",
"keywords": [
"erb",
"erb-gen",
"express",
"expressjs",
"rest",
"restful",
"router",
"app",
"api",
"react",
"react-router",
"redux",
"template",
"webpack",
"universal",
"boilerplate",
"postcss",
"css-modules",
"pwa",
"progressive web app",
"offline"
],
"homepage": "https://github.com/htdangkhoa/erb",
"bugs": {
"url": "https://github.com/htdangkhoa/erb/issues"
},
"repository": {
"type": "git",
"url": "https://github.com/htdangkhoa/erb.git"
},
"license": "MIT",
"author": "htdangkhoa <huynhtran.dangkhoa@gmail.com> (https://github.com/htdangkhoa)",
"contributors": [
"huynhtran.dangkhoa@gmail.com"
],
"main": "dist/index.js",
"bin": {
"erb-gen": "./bin/index.js"
},
"scripts": {
"preanalyze": "npm run stats",
"analyze": "webpack-bundle-analyzer stats.json",
"prebuild": "del-cli dist",
"build": "BABEL_ENV=production babel --minified --no-comments src -D -d dist && npm run wp",
"postbuild": "del-cli dist/**/__tests__",
"clean": "del-cli \"public/*\" \"!public/assets\" \"!public/locales\" \"!public/robots.txt\" \"!public/googledb37d62693032295.html\"",
"predev": "del-cli dist && npm run clean",
"dev": "env-cmd -e development nodemon --trace-warnings --inspect=0.0.0.0:58585 src/index.js --exec babel-node",
"eslint": "eslint src --ext .js",
"start": "env-cmd -e production node dist/index.js",
"stats": "env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack.config.js --progress --colors --bail --json > stats.json",
"storybook": "start-storybook --ci",
"test": "jest -u",
"prewp": "npm run clean",
"wp": "env-cmd -e production babel-node ./node_modules/.bin/webpack --config src/tools/webpack/webpack.config.js --progress --colors --bail"
},
"nodemonConfig": {
"ignore": [
"dist",
"public",
"src/client",
"src/store"
]
},
"browserslist": {
"production": [
"ie 11",
">0.1%",
"not dead",
"not op_mini all"
],
"development": [
"ie 11",
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"jest": {
"globals": {
"__DEV__": false
},
"moduleNameMapper": {
"\\.(css|less|scss|sss|styl)$": "<rootDir>/src/tools/jest/styles-mock.js",
".*\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/src/tools/jest/assets-mock.js"
}
},
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.1",
"@hot-loader/react-dom": "^16.10.2",
"@loadable/component": "^5.13.1",
"@loadable/server": "^5.13.1",
"asset-require-hook": "^1.2.0",
"autoprefixer": "^9.8.4",
"axios": "^0.19.0",
"bcrypt": "^5.0.0",
"body-parser": "^1.19.0",
"bootstrap": "^4.3.1",
"commander": "^5.0.0",
"compression": "^1.7.4",
"connected-react-router": "^6.5.2",
"cors": "^2.8.5",
"css-modules-require-hook": "^4.2.3",
"del": "^5.1.0",
"env-cmd": "^10.1.0",
"express": "^4.17.1",
"git-clone": "^0.1.0",
"helmet": "^3.23.3",
"history": "^4.10.1",
"html-minifier": "^4.0.0",
"i18next": "^19.5.4",
"i18next-browser-languagedetector": "^5.0.0",
"i18next-xhr-backend": "^3.2.0",
"jsonwebtoken": "^8.5.1",
"lodash": "^4.17.19",
"moment-timezone": "^0.5.27",
"mongodb": "^3.5.8",
"node-sass": "^4.13.0",
"offline-plugin": "^5.0.7",
"passport": "^0.4.0",
"passport-jwt": "^4.0.0",
"prop-types": "^15.7.2",
"react": "^16.10.2",
"react-cookie": "^4.0.1",
"react-dom": "^16.11.0",
"react-emoji-render": "^1.2.0",
"react-helmet": "^6.0.0",
"react-hot-loader": "^4.12.15",
"react-html-parser": "^2.0.2",
"react-i18next": "^11.7.0",
"react-mde": "^10.0.3",
"react-paginate": "^6.3.2",
"react-redux": "^7.1.1",
"react-router-config": "^5.1.1",
"react-router-dom": "^5.1.2",
"react-router-last-location": "^2.0.1",
"react-spinners": "^0.9.0",
"react-switch": "^5.0.1",
"react-toastify": "^6.0.8",
"reactstrap": "^8.5.1",
"redux": "^4.0.4",
"redux-devtools-extension": "^2.13.8",
"redux-form": "^8.2.6",
"redux-thunk": "^2.3.0",
"serialize-javascript": "^4.0.0",
"serve-favicon": "^2.5.0",
"showdown": "^1.9.1",
"universal-cookie": "^4.0.2",
"validator": "^13.0.0"
},
"devDependencies": {
"@babel/cli": "^7.10.4",
"@babel/core": "^7.10.4",
"@babel/node": "^7.10.4",
"@babel/plugin-proposal-optional-chaining": "^7.10.4",
"@babel/plugin-syntax-dynamic-import": "^7.2.0",
"@babel/plugin-transform-runtime": "^7.10.4",
"@babel/plugin-transform-spread": "^7.10.4",
"@babel/polyfill": "^7.10.4",
"@babel/preset-env": "^7.10.4",
"@babel/preset-flow": "^7.10.4",
"@babel/preset-react": "^7.10.4",
"@babel/runtime": "^7.10.4",
"@loadable/babel-plugin": "^5.13.0",
"@loadable/webpack-plugin": "^5.13.0",
"@storybook/react": "^5.2.8",
"address": "^1.1.2",
"babel-eslint": "^10.0.3",
"babel-loader": "^8.0.6",
"babel-plugin-module-resolver": "^4.0.0",
"compression-webpack-plugin": "^4.0.0",
"css-loader": "^3.6.0",
"del-cli": "^3.0.1",
"eslint": "^7.4.0",
"eslint-config-airbnb-base": "^14.0.0",
"eslint-config-prettier": "^6.5.0",
"eslint-import-resolver-babel-module": "^5.1.0",
"eslint-plugin-flowtype": "^5.2.0",
"eslint-plugin-import": "^2.22.0",
"eslint-plugin-jest": "^23.18.0",
"eslint-plugin-prettier": "^3.1.4",
"eslint-plugin-react": "^7.20.3",
"flow-bin": "^0.129.0",
"friendly-errors-webpack-plugin": "^1.7.0",
"imagemin-webpack-plugin": "^2.4.2",
"jest": "^26.1.0",
"jest-css-modules": "^2.1.0",
"lodash-webpack-plugin": "^0.11.5",
"mini-css-extract-plugin": "^0.9.0",
"nodemon": "^2.0.1",
"optimize-css-assets-webpack-plugin": "^5.0.3",
"postcss": "^7.0.25",
"postcss-loader": "^3.0.0",
"prettier": "^2.0.2",
"react-dev-utils": "^10.2.1",
"react-test-renderer": "^16.12.0",
"sass-loader": "^9.0.2",
"tcp-port-used": "^1.0.1",
"terser-webpack-plugin": "^3.0.6",
"url-loader": "^4.0.0",
"webpack": "^4.29.0",
"webpack-bundle-analyzer": "^3.6.0",
"webpack-cli": "^3.3.12",
"webpack-dev-middleware": "^3.7.2",
"webpack-hot-middleware": "^2.25.0",
"webpack-pwa-manifest": "^4.2.0",
"webpackbar": "^4.0.0"
},
"engines": {
"node": ">=10.13.0"
}
}