{"_id":"@bengo.co/typescript-web-starter","_rev":"3-f07c6764666d45ab11dd18cad2e4794e","name":"@bengo.co/typescript-web-starter","dist-tags":{"latest":"1.0.2"},"versions":{"1.0.0":{"name":"@bengo.co/typescript-web-starter","version":"1.0.0","description":"","main":"index.js","scripts":{"develop":"parcel src/client/etc/parcel","build:client":"webpack --config src/etc/webpack/client.prod.ts","build":"concurrently  --kill-others-on-fail 'npm:build:client' 'npm:tsc'","prettify":"prettier --write './src/**/*.{js,jsx,ts,tsx}'","start":"ts-node src/bin/server.ts","start:dev":"NODE_ENV=development npm start","test":"ts-node src/test","tsc":"tsc","prettier":"prettier '{package.json,tsconfig.json,src/**/*.{ts,tsx}}' --write","precise-commits":"precise-commits","precommit":"concurrently 'npm:tslint' 'npm:tsc'","tslint":"tslint --project . --format stylish"},"prettier":{"trailingComma":"all"},"author":"","license":"ISC","devDependencies":{"@types/koa-webpack":"^5.0.1","@types/prop-types":"^15.5.3","@types/react-dom":"^16.0.6","@types/redux-actions":"^2.3.0","@types/webpack-env":"^1.13.6","awesome-typescript-loader":"^5.2.0","babel-loader":"^7.1.5","babel-plugin-universal-import":"^3.0.0","cache-loader":"^1.2.2","concurrently":"^3.6.0","husky":"^0.14.3","jest":"^23.3.0","parcel-plugin-typescript":"^1.0.0","precise-commits":"^1.0.2","prettier":"^1.13.7","redux-devtools-extension":"^2.13.5","thread-loader":"^1.1.5","ts-loader":"^4.4.2","ts-node":"^7.0.0","tslint":"^5.11.0","tslint-config-prettier":"^1.14.0","tslint-eslint-rules":"^5.3.1","tslint-microsoft-contrib":"^5.1.0","tslint-react":"^3.6.0","typescript":"^2.9.2","webpack-cli":"^3.0.8","webpack-hot-middleware":"^2.22.2","write-file-webpack-plugin":"^4.3.2"},"dependencies":{"@material-ui/core":"^1.4.0","@material-ui/icons":"^1.1.0","@types/classnames":"^2.2.5","@types/dotenv":"^4.0.3","@types/history":"^4.6.2","@types/koa":"^2.0.46","@types/koa-mount":"^3.0.1","@types/koa-route":"^3.2.4","@types/koa-send":"^4.1.1","@types/koa-static":"^4.0.0","@types/react-redux":"^6.0.4","@types/react-router":"^4.0.29","@types/react-router-config":"^1.0.7","@types/react-router-dom":"^4.2.7","@types/react-router-redux":"^5.0.15","@types/slug":"^0.9.0","@types/webpack":"^4.4.7","@types/webpack-merge":"^4.1.3","alsatian":"^2.2.1","autoprefixer":"^9.0.0","classnames":"^2.2.6","connected-react-router":"^4.3.0","dotenv":"^6.0.0","extract-css-chunks-webpack-plugin":"^3.0.10","fork-ts-checker-webpack-plugin":"^0.4.3","hard-source-webpack-plugin":"^0.11.1","history":"^4.7.2","html-webpack-plugin":"^3.2.0","immutable":"^3.8.2","jss":"^9.8.7","killable":"^1.0.0","koa":"^2.5.2","koa-mount":"^3.0.0","koa-route":"^3.2.0","koa-send":"^5.0.0","koa-static":"^5.0.0","koa-webpack":"^5.1.0","postcss-smart-import":"^0.7.6","prop-types":"^15.6.2","react":"^16.4.1","react-dom":"^16.4.1","react-hot-loader":"^4.3.3","react-jss":"^8.6.1","react-redux":"^5.0.7","react-router":"^4.3.1","react-router-config":"^1.0.0-beta.4","react-router-dom":"^4.3.1","react-universal-component":"^2.9.0","redux":"^4.0.0","redux-actions":"^2.4.0","redux-immutable":"^4.0.0","redux-inject-reducer-and-saga":"^6.0.1","redux-saga":"^0.16.0","redux-thunk":"^2.3.0","slug":"^0.9.1","styled-components":"^3.3.3","stylelint":"^9.3.0","stylelint-webpack-plugin":"^0.10.5","tap-bark":"^1.0.0","tap-spec":"^5.0.0","ts-node-dev":"^1.0.0-pre.26","webpack":"^4.16.1","webpack-flush-chunks":"^2.0.1","webpack-merge":"^4.1.3"},"gitHead":"76a3002335a1490022bb08f22c5044323f563389","_id":"@bengo.co/typescript-web-starter@1.0.0","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"gobengo","email":"bengoering@gmail.com"},"dist":{"integrity":"sha512-WANePorPeSnWiB11A/PlVSliVJWkNsLSbYOSssvqZrMF4EIhC1kMbYsZFY7YIkMAHYsmu7pOa5+/2FSSJfFroQ==","shasum":"e61609a822b5db7df19411d384081344bce7f75d","tarball":"https://registry.npmjs.org/@bengo.co/typescript-web-starter/-/typescript-web-starter-1.0.0.tgz","fileCount":63,"unpackedSize":82631,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVV2QCRA9TVsSAnZWagAAEhwP/3Ikz/DGvZJVxEg/oyY9\n1+J4sm1diDVfzscrtDBYEh0/sYUKB8yCUUzHT7ymlkZ+l4oMeTjj+RjBZpSh\nGmP3iAegdJg+IJ3paAJ4PxoS65JedN7zhGf+4oxDucNsZ8SnAIcDGs+3J1wQ\nr17Y8SolUBNGdjHs7ig6MehOQxg4yMSEv/hnG1rKyFh72fYzs+ZOQNxhYLLb\n9U87L/rplzNrHMOSgck9ODPVGEKzqRM/DVeG6y9kFAIh2rXE6FMc0R7CXkRN\nNiC4eM+b64FGWZxEYx1keWiRioCQzW0CWs0bbcvXGKmAXVjOKd1vWHYZ9Itt\nSgk5ggjMJXIwLZVR0Bo2zSRIuxOi/StNjJ+xZE5EF4BofU7VX4M+4wDhsadP\nzpbsaHVvOaA1Tll7yk0x5bLVhkQJirCBMmC1fA8dNebqRIAq2WgUQgFoBbPm\n8v83M3c+VSKMraaXuhzNjSBl1iFFxZMXm08ODLtBhHEtJyvNkXBDe/lwyo4g\nQ6kwxHXL0kVXdk+BAJE7Puy7O66wuE4WPE5Moj6DEHzfNYaG9ALdpCp8q/57\nwNxiw8gk3NtTnPc0FFJzHnVJXMSq872V3WCL71887/Om79q1/eZUuGTahG49\nh1XhjmVn/BO9t60gzRh2/eDiRgZ4Fjlngd76DwwYuIIqWA7HModEn08s1dhb\noafb\r\n=dCzV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCMUlEqF1buPldHH3qKy0Q863ekQLzSsyEHJrifpTF+lgIgMBjE17RV8GXoXcZxD8X7aW73tctVLo9RyNnc1Mp/uxg="}]},"maintainers":[{"name":"gobengo","email":"bengoering@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typescript-web-starter_1.0.0_1532321168856_0.055547066977237325"},"_hasShrinkwrap":false},"1.0.1":{"name":"@bengo.co/typescript-web-starter","version":"1.0.1","description":"A simple website project written in TypeScript. Use this as a starting point for your project.","main":"index.js","scripts":{"dev":"npm run develop","develop":"NODE_ENV=development npm start","build:client":"webpack --config src/etc/webpack/client.prod.ts","build":"concurrently  --kill-others-on-fail 'npm:build:client' 'npm:tsc'","prettify":"prettier --write './src/**/*.{js,jsx,ts,tsx}'","start":"ts-node src/bin/server.ts","test":"ts-node src/test","tsc":"tsc","prettier":"prettier '{package.json,tsconfig.json,src/**/*.{ts,tsx}}' --write","precise-commits":"precise-commits","precommit":"concurrently 'npm:tslint' 'npm:tsc'","tslint":"tslint --project . --format stylish"},"prettier":{"trailingComma":"all"},"author":"","license":"ISC","devDependencies":{"@types/koa-webpack":"^5.0.1","@types/prop-types":"^15.5.3","@types/react-dom":"^16.0.6","@types/redux-actions":"^2.3.0","@types/webpack-env":"^1.13.6","awesome-typescript-loader":"^5.2.0","babel-loader":"^7.1.5","babel-plugin-universal-import":"^3.0.0","cache-loader":"^1.2.2","concurrently":"^3.6.0","husky":"^0.14.3","jest":"^23.3.0","parcel-plugin-typescript":"^1.0.0","precise-commits":"^1.0.2","prettier":"^1.13.7","redux-devtools-extension":"^2.13.5","thread-loader":"^1.1.5","ts-loader":"^4.4.2","ts-node":"^7.0.0","tslint":"^5.11.0","tslint-config-prettier":"^1.14.0","tslint-eslint-rules":"^5.3.1","tslint-microsoft-contrib":"^5.1.0","tslint-react":"^3.6.0","typescript":"^2.9.2","webpack-cli":"^3.0.8","webpack-hot-middleware":"^2.22.2","write-file-webpack-plugin":"^4.3.2"},"dependencies":{"@material-ui/core":"^1.4.0","@material-ui/icons":"^1.1.0","@types/classnames":"^2.2.5","@types/dotenv":"^4.0.3","@types/history":"^4.6.2","@types/koa":"^2.0.46","@types/koa-mount":"^3.0.1","@types/koa-route":"^3.2.4","@types/koa-send":"^4.1.1","@types/koa-static":"^4.0.0","@types/react-redux":"^6.0.4","@types/react-router":"^4.0.29","@types/react-router-config":"^1.0.7","@types/react-router-dom":"^4.2.7","@types/react-router-redux":"^5.0.15","@types/slug":"^0.9.0","@types/webpack":"^4.4.7","@types/webpack-merge":"^4.1.3","alsatian":"^2.2.1","autoprefixer":"^9.0.0","classnames":"^2.2.6","connected-react-router":"^4.3.0","dotenv":"^6.0.0","extract-css-chunks-webpack-plugin":"^3.0.10","fork-ts-checker-webpack-plugin":"^0.4.3","hard-source-webpack-plugin":"^0.11.1","history":"^4.7.2","html-webpack-plugin":"^3.2.0","immutable":"^3.8.2","jss":"^9.8.7","killable":"^1.0.0","koa":"^2.5.2","koa-mount":"^3.0.0","koa-route":"^3.2.0","koa-send":"^5.0.0","koa-static":"^5.0.0","koa-webpack":"^5.1.0","postcss-smart-import":"^0.7.6","prop-types":"^15.6.2","react":"^16.4.1","react-dom":"^16.4.1","react-hot-loader":"^4.3.3","react-jss":"^8.6.1","react-redux":"^5.0.7","react-router":"^4.3.1","react-router-config":"^1.0.0-beta.4","react-router-dom":"^4.3.1","react-universal-component":"^2.9.0","redux":"^4.0.0","redux-actions":"^2.4.0","redux-immutable":"^4.0.0","redux-inject-reducer-and-saga":"^6.0.1","redux-saga":"^0.16.0","redux-thunk":"^2.3.0","slug":"^0.9.1","styled-components":"^3.3.3","stylelint":"^9.3.0","stylelint-webpack-plugin":"^0.10.5","tap-bark":"^1.0.0","tap-spec":"^5.0.0","ts-node-dev":"^1.0.0-pre.26","webpack":"^4.16.1","webpack-flush-chunks":"^2.0.1","webpack-merge":"^4.1.3"},"gitHead":"7f43cce028ba588ef3b375e2512197ae2f00561b","_id":"@bengo.co/typescript-web-starter@1.0.1","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"gobengo","email":"bengoering@gmail.com"},"dist":{"integrity":"sha512-ORgoHSIzgrJHIhMIBCOCNfMOYOQo/dxoTR1FVUbwngIFbHYDPNnzGmRFMn4FpK53wO67bOvVAP8q3mQRbh2UCg==","shasum":"e5f93ae069cfdbb0015aed4fa7a63a5af6744585","tarball":"https://registry.npmjs.org/@bengo.co/typescript-web-starter/-/typescript-web-starter-1.0.1.tgz","fileCount":64,"unpackedSize":84362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVWYoCRA9TVsSAnZWagAAC6AP/js+1IeYRDXPT8mcUscZ\nUSX/SJdm07EdMMI90u5pPwe4ibcdi6BT5A2rYyoBMnfXperWS7yGa/QPwaxW\niRmW0xk+MokCtPq/9DekdihxDpVrSGXSzq6sEUXacSbgIk8EBCJalezHy+iP\ny3ul9bw3yt7O1Qd72M/6e6duBQ6hiWHPWaODtold3MqMcKIJxXdsJcbNSCL5\np8cX5JNS7hqJbY+3Ign7f2kbaU/zxjM3dRiIXsaNyv3eGnYsVdgucki1Bhh7\nAwk8VlTx8SxYfwVd31DOu2JmOJt2+4jckoR4gR3uP2wnD+p5NfDFdCk6tnJf\nq6j9+8XIc88xkL6ZPlahxduJpLleC3/d2pKuMGadz5r4MYeTeGlT1sprkZQE\n1PIBKdlX116i63Vz13jeHl17iK7bY5P+JsFnpS2eqGWDHDx4CjlRl0AyjWYx\na/FVDxyfZYn0FYuzFmGj9Pq3GkpS00Rxj+RkJgTnlSlDP12g38gpi+v7SF1C\nYow+xg7ne4ykidlaNbH+nTqWwyHiRYLPkS3zQ/mUNFMgPrHZrE5gmkGb4UAa\nn6ZoU38CuKpCHFVnjfLi3T8hEQTY/DtugrxKPPchyJXQwegt2YXhN3M+w306\ndX/cO8bUH9XuC3BRU1fbaTrExtkPa3IAXloI/qJo54gCqpf7x0SeR3zlpjZh\nAcTC\r\n=qJOp\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDZ9Nal2ZYkUGr3aE0B/fgzBDd8PBhj8UCB/a2bNDZnOQIhAL87CrlID3m4Vx7pMvfmlkwxblpXlKBBqIALfJEo685+"}]},"maintainers":[{"name":"gobengo","email":"bengoering@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typescript-web-starter_1.0.1_1532323368874_0.5120121245839528"},"_hasShrinkwrap":false},"1.0.2":{"name":"@bengo.co/typescript-web-starter","version":"1.0.2","description":"A simple website project written in TypeScript. Use this as a starting point for your project.","homepage":"https://gitlab.ops.bengo.is/ben/typescript-web-starter","repository":{"type":"git","url":"https://gitlab.ops.bengo.is/ben/typescript-web-starter.git"},"main":"index.js","scripts":{"dev":"npm run develop","develop":"NODE_ENV=development npm start","build:client":"webpack --config src/etc/webpack/client.prod.ts","build":"concurrently  --kill-others-on-fail 'npm:build:client' 'npm:tsc'","prettify":"prettier --write './src/**/*.{js,jsx,ts,tsx}'","start":"ts-node src/bin/server.ts","test":"ts-node src/test","tsc":"tsc","prettier":"prettier '{package.json,tsconfig.json,src/**/*.{ts,tsx}}' --write","precise-commits":"precise-commits","precommit":"concurrently 'npm:tslint' 'npm:tsc'","tslint":"tslint --project . --format stylish"},"prettier":{"trailingComma":"all"},"author":"","license":"ISC","devDependencies":{"@types/koa-webpack":"^5.0.1","@types/prop-types":"^15.5.3","@types/react-dom":"^16.0.6","@types/redux-actions":"^2.3.0","@types/webpack-env":"^1.13.6","awesome-typescript-loader":"^5.2.0","babel-loader":"^7.1.5","babel-plugin-universal-import":"^3.0.0","cache-loader":"^1.2.2","concurrently":"^3.6.0","husky":"^0.14.3","jest":"^23.3.0","parcel-plugin-typescript":"^1.0.0","precise-commits":"^1.0.2","prettier":"^1.13.7","redux-devtools-extension":"^2.13.5","thread-loader":"^1.1.5","ts-loader":"^4.4.2","ts-node":"^7.0.0","tslint":"^5.11.0","tslint-config-prettier":"^1.14.0","tslint-eslint-rules":"^5.3.1","tslint-microsoft-contrib":"^5.1.0","tslint-react":"^3.6.0","typescript":"^2.9.2","webpack-cli":"^3.0.8","webpack-hot-middleware":"^2.22.2","write-file-webpack-plugin":"^4.3.2"},"dependencies":{"@material-ui/core":"^1.4.0","@material-ui/icons":"^1.1.0","@types/classnames":"^2.2.5","@types/dotenv":"^4.0.3","@types/history":"^4.6.2","@types/koa":"^2.0.46","@types/koa-mount":"^3.0.1","@types/koa-route":"^3.2.4","@types/koa-send":"^4.1.1","@types/koa-static":"^4.0.0","@types/react-redux":"^6.0.4","@types/react-router":"^4.0.29","@types/react-router-config":"^1.0.7","@types/react-router-dom":"^4.2.7","@types/react-router-redux":"^5.0.15","@types/slug":"^0.9.0","@types/webpack":"^4.4.7","@types/webpack-merge":"^4.1.3","alsatian":"^2.2.1","autoprefixer":"^9.0.0","classnames":"^2.2.6","connected-react-router":"^4.3.0","dotenv":"^6.0.0","extract-css-chunks-webpack-plugin":"^3.0.10","fork-ts-checker-webpack-plugin":"^0.4.3","hard-source-webpack-plugin":"^0.11.1","history":"^4.7.2","html-webpack-plugin":"^3.2.0","immutable":"^3.8.2","jss":"^9.8.7","killable":"^1.0.0","koa":"^2.5.2","koa-mount":"^3.0.0","koa-route":"^3.2.0","koa-send":"^5.0.0","koa-static":"^5.0.0","koa-webpack":"^5.1.0","postcss-smart-import":"^0.7.6","prop-types":"^15.6.2","react":"^16.4.1","react-dom":"^16.4.1","react-hot-loader":"^4.3.3","react-jss":"^8.6.1","react-redux":"^5.0.7","react-router":"^4.3.1","react-router-config":"^1.0.0-beta.4","react-router-dom":"^4.3.1","react-universal-component":"^2.9.0","redux":"^4.0.0","redux-actions":"^2.4.0","redux-immutable":"^4.0.0","redux-inject-reducer-and-saga":"^6.0.1","redux-saga":"^0.16.0","redux-thunk":"^2.3.0","slug":"^0.9.1","styled-components":"^3.3.3","stylelint":"^9.3.0","stylelint-webpack-plugin":"^0.10.5","tap-bark":"^1.0.0","tap-spec":"^5.0.0","ts-node-dev":"^1.0.0-pre.26","webpack":"^4.16.1","webpack-flush-chunks":"^2.0.1","webpack-merge":"^4.1.3"},"gitHead":"2d954fcc453eede04df9bb73d722f641e1b7ba07","_id":"@bengo.co/typescript-web-starter@1.0.2","_npmVersion":"6.1.0","_nodeVersion":"8.11.2","_npmUser":{"name":"gobengo","email":"bengoering@gmail.com"},"dist":{"integrity":"sha512-wriQrLhZNK6/NnORQIRAUq+mOESvW0OFDqHzL/4GSb3A5JbWnIqIKZ43TTXhlTaM+569GjHcNaijnKKXT6z2fA==","shasum":"ce422e8cf20fcc772ad9a2c3615f5f0dc14b60d2","tarball":"https://registry.npmjs.org/@bengo.co/typescript-web-starter/-/typescript-web-starter-1.0.2.tgz","fileCount":64,"unpackedSize":84586,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbVWgnCRA9TVsSAnZWagAAOjEP/RLpe1rlo0g4pepX8Zri\npEM5AX8lmRQKmDz9rabyru6DoNBNlmK67GXNxeB23YysFmQxKlv/czGy3XJU\nVicrIgz41wMZjqxhTpKfFcnhFXiCjD+nnYorYh8cEC5jYsTFF0Wls9VFBjag\nCkk+JBB1BV3IqRVdvQ9+cCKXYmasOmqjYw/KzCUuBKZkpYEdxhLVaA/6Z8k1\nOJYWDHC2dwOuQgMUPXuczjjigbYwFWJh4tv0ICtY9wh8x2esrYb6VWmWwzKH\n6tBkFfMfr7BPwE9MifiNWQUWIEovwZgM3gZqbPD/RWe/rbdejaW0kbHkyc5L\n5wSayUMoeaSvFQmNAvbB6EhVcFEATLF0DT6NOR1vp49ZiNEvj2+PueKQPvAB\n05+Bl4HsroRjR4fU3QW1xPa5gZzwRf3hoqBPtqFL0cXRhzxeKon3fizfbSzh\naoZC+ZPcw0qHUr0IdFAjcYAgN1B9HqZYrK5pMmrLUxruMOipsFWTWwIJ6iAl\nCQnbnJHQDP1e8fZWG3TEISDTQ4R9vh9N78yW1bz/8rftsNML1njk/fT2Ohnl\nIezyttRTHjaLGHn5YfCerkC2KZQO3JLZdUeFjAl/D7MxzpQR1mNfobg/mqEl\nmnQjSCjLJXXr+SvxYXqdWpCfM4LotQ2tWyN9pTv/AGq93f0gYW5eW9RFPrPB\n8/LU\r\n=TvKH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCyzrxbwCxKzJap0oEoN6uyW27oMRa+EybY9ZBX9yFl6AIhAJalDzTfjdqqW7fL9FG20KYBWn3W6xtSg48DunXwZN/u"}]},"maintainers":[{"name":"gobengo","email":"bengoering@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/typescript-web-starter_1.0.2_1532323879370_0.8442742604247238"},"_hasShrinkwrap":false}},"time":{"created":"2018-07-23T04:46:08.779Z","1.0.0":"2018-07-23T04:46:08.984Z","modified":"2022-04-04T18:22:37.013Z","1.0.1":"2018-07-23T05:22:48.946Z","1.0.2":"2018-07-23T05:31:19.464Z"},"maintainers":[{"name":"gobengo","email":"bengoering@gmail.com"}],"license":"ISC","readme":"# typescript-web-starter\n\nA simple website project written in TypeScript. Use this as a starting point for your project.\n\nSave yourself some time. Launch sooner.\n\n## Features\n\n* [React](https://reactjs.org) for view composition\n* [Material UI](https://material-ui.com/) react components for common UI elements like buttons, grid, etc. Type-checked.\n* client-side state management with [Redux](https://redux.js.org/)\n* web server using [koa](https://koajs.com/)\n* server side rendering (SSR) - Faster apparent page loads + your website will load for end-users without JavaScript.\n* [Hot Module Replacement (HMR)](https://webpack.js.org/concepts/hot-module-replacement/) - When running the web server with NODE_ENV=development, saving any file (e.g. a React Component) will instantly reload and re-render your app.\n* Testing:\n  * Convention to be able to run any test file (or all) using [./src/test/cli](./src/test/cli). No magic tests runner CLIs\n  * Tests are type-checked, thanks to [alsatian-test](https://github.com/alsatian-test/alsatian)\n* VS Code Project\n  * Debug projects in VS Code GUI with ts-node launcher\n* [prettier](https://prettier.io/) - standard code formatting\n* [tslint](https://palantir.github.io/tslint/) - Consistent coding practices, enforced.\n\n## Usage\n\n1. Fork or clone this repository.\n2. `npm install` - to download dependencies\n\n* dev mode (HMR enabled): `npm run dev`\n  * or `NODE_ENV=development npm start`\n* build assets for production: `npm run build`\n  * TypeScript -> JavaScript output goes in [./lib/](./lib/)\n  * Minfied JavaScript for web browser goes in [./dist/](./dist/)\n* production mode\n  * first, compile JS to be loaded in the browser: `npm run build`\n  * `npm start`\n* test: `npm test`\n* tslint: `npm run tslint`\n* prettier: `npm run prettier`\n","readmeFilename":"README.md","description":"A simple website project written in TypeScript. Use this as a starting point for your project.","homepage":"https://gitlab.ops.bengo.is/ben/typescript-web-starter","repository":{"type":"git","url":"https://gitlab.ops.bengo.is/ben/typescript-web-starter.git"}}