diff --git a/package.json b/package.json index ca59ca6..3e873fa 100644 --- a/package.json +++ b/package.json @@ -5,11 +5,11 @@ "main": "index.js", "scripts": { "start:dev": "webpack-dev-server --open --config webpack.dev.js ", - "start:prod": "npm run build && serve -s dist", - "start": "serve -s dist", + "start:prod": "npm run build && serve dist", "build": "webpack --config webpack.prod.js", "lint": "eslint src", "heroku-postbuild": "npm run build", + "postinstall": "npm run build", "test": "jest", "test:cov": "jest --coverage --env='jsdom'", "coveralls": "cat ./coverage/lcov.info | node node_modules/.bin/coveralls" @@ -37,6 +37,7 @@ "babel-jest": "^23.6.0", "babel-loader": "^8.0.4", "coveralls": "^3.0.2", + "env-cmd": "^8.0.2", "enzyme": "^3.7.0", "enzyme-adapter-react-16": "^1.7.0", "enzyme-to-json": "^3.3.4", @@ -48,7 +49,7 @@ "eslint-plugin-react": "^7.11.1" }, "dependencies": { - "@babel/plugin-proposal-class-properties": "^7.1.0", + "@babel/plugin-proposal-class-properties": "^7.2.1", "@fortawesome/fontawesome-svg-core": "^1.2.8", "@fortawesome/free-brands-svg-icons": "^5.5.0", "@fortawesome/free-solid-svg-icons": "^5.5.0", @@ -90,13 +91,11 @@ "redux-mock-store": "^1.5.3", "redux-thunk": "^2.3.0", "sass-loader": "^7.1.0", - "serve": "^10.1.1", "sweetalert2": "^7.29.2", - "webpack": "^4.26.1", + "webpack": "^4.27.1", "webpack-cli": "^3.1.2", "webpack-dev-server": "^3.1.10", - "webpack-merge": "^4.1.4", - "@babel/plugin-proposal-class-properties": "^7.2.1" + "webpack-merge": "^4.1.4" }, "jest": { "snapshotSerializers": [ diff --git a/static.json b/static.json new file mode 100644 index 0000000..f3ea91a --- /dev/null +++ b/static.json @@ -0,0 +1,9 @@ +{ + "root": "dist/", + "routes": { + "/": "index.html" + }, + "proxies": { + "/api/": "https://ah-backend-thanos-staging.herokuapp.com/" + } + } \ No newline at end of file diff --git a/webpack.common.js b/webpack.common.js index 2b5cedc..b1736e6 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -1,15 +1,14 @@ const path = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const Dotenv = require('dotenv-webpack'); module.exports = { entry: { - app: './src/index.js' + app: './src/index.js', }, output: { filename: '[name].bundle.js', - path: path.resolve(__dirname, 'dist') + path: path.resolve(__dirname, 'dist'), }, module: { rules: [ @@ -17,26 +16,26 @@ module.exports = { test: /\.(js|jsx)$/, exclude: /node_modules/, use: { - loader: 'babel-loader' - } + loader: 'babel-loader', + }, }, { test: /\.html$/, use: [ { loader: 'html-loader', - options: { minimize: true } - } - ] + options: { minimize: true }, + }, + ], }, { test: /\.(css|scss)$/, - use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'] + use: [MiniCssExtractPlugin.loader, 'css-loader', 'sass-loader'], }, { test: /\.(png|jpg)$/, include: path.join(__dirname, 'static/images'), - loader: 'file-loader' + loader: 'file-loader', }, { test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/, @@ -45,9 +44,9 @@ module.exports = { loader: 'file-loader', options: { name: '[name].[ext]', - outputPath: 'fonts/' - } - } + outputPath: 'fonts/', + }, + }, ], }, ], @@ -64,6 +63,5 @@ module.exports = { filename: '[name].css', chunkFilename: '[id].css', }), - new Dotenv(), ], }; diff --git a/webpack.dev.js b/webpack.dev.js index a88dc62..6c2fe5e 100644 --- a/webpack.dev.js +++ b/webpack.dev.js @@ -1,10 +1,13 @@ const merge = require('webpack-merge'); +const Dotenv = require('dotenv-webpack'); const common = require('./webpack.common.js'); + module.exports = merge(common, { - mode: 'development', - devtool: 'inline-source-map', - devServer: { - contentBase: './dist' - } -}); \ No newline at end of file + mode: 'development', + devtool: 'inline-source-map', + devServer: { + contentBase: './dist', + }, + plugins: [new Dotenv()], +}); diff --git a/webpack.prod.js b/webpack.prod.js index f6121fc..ccbdab8 100644 --- a/webpack.prod.js +++ b/webpack.prod.js @@ -2,5 +2,5 @@ const merge = require('webpack-merge'); const common = require('./webpack.common.js'); module.exports = merge(common, { - mode: 'production', -}); \ No newline at end of file + mode: 'production', +});