Skip to content
Snippets Groups Projects
Commit fededa52 authored by Esko Ikkala's avatar Esko Ikkala
Browse files

Add build scripts

parent cc0e6a3f
No related branches found
No related tags found
No related merge requests found
{ {
"name": "hipla-react", "name": "hipla-full-stack",
"version": "0.0.1", "version": "0.0.1",
"lockfileVersion": 1, "lockfileVersion": 1,
"requires": true, "requires": true,
...@@ -12709,7 +12709,6 @@ ...@@ -12709,7 +12709,6 @@
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
...@@ -12878,7 +12877,6 @@ ...@@ -12878,7 +12877,6 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
...@@ -15324,6 +15322,15 @@ ...@@ -15324,6 +15322,15 @@
"uuid": "^3.1.0" "uuid": "^3.1.0"
} }
}, },
"webpack-merge": {
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz",
"integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==",
"dev": true,
"requires": {
"lodash": "^4.17.5"
}
},
"webpack-sources": { "webpack-sources": {
"version": "1.1.0", "version": "1.1.0",
"resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz",
......
{ {
"name": "hipla-react", "name": "hipla-full-stack",
"version": "0.0.1", "version": "0.0.1",
"description": "", "description": "",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node src/server/index.js",
"build": "webpack --mode production",
"client": "webpack-dev-server --mode development --devtool inline-source-map --hot",
"dev": "concurrently \"npm run server\" \"npm run client\"", "dev": "concurrently \"npm run server\" \"npm run client\"",
"server": "nodemon --exec babel-node src/server/index.js", "build": "npm run build-client && npm run build-server",
"client": "webpack-dev-server --config webpack.client.dev.js",
"server": "nodemon src/server/index.js --exec babel-node ",
"build-client": "webpack --progress --config webpack.client.prod.js",
"build-server": "babel --no-babelrc --presets=es2015 -d ./dist/server ./src/server",
"serve": "NODE_ENV=production node dist/server/index.js",
"test": "jest --watch" "test": "jest --watch"
}, },
"jest": { "jest": {
"setupTestFrameworkScriptFile": "<rootDir>/src/setupTests.js" "setupTestFrameworkScriptFile": "<rootDir>/src/client/setupTests.js"
}, },
"keywords": [], "keywords": [],
"author": "Esko Ikkala", "author": "Esko Ikkala",
...@@ -24,6 +26,7 @@ ...@@ -24,6 +26,7 @@
"babel-jest": "^22.4.4", "babel-jest": "^22.4.4",
"babel-loader": "^7.1.4", "babel-loader": "^7.1.4",
"babel-preset-env": "^1.7.0", "babel-preset-env": "^1.7.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-react": "^6.24.1", "babel-preset-react": "^6.24.1",
"clean-webpack-plugin": "^0.1.19", "clean-webpack-plugin": "^0.1.19",
"concurrently": "^3.5.1", "concurrently": "^3.5.1",
...@@ -44,7 +47,8 @@ ...@@ -44,7 +47,8 @@
"style-loader": "^0.20.3", "style-loader": "^0.20.3",
"webpack": "^4.11.1", "webpack": "^4.11.1",
"webpack-cli": "^2.1.5", "webpack-cli": "^2.1.5",
"webpack-dev-server": "^3.1.4" "webpack-dev-server": "^3.1.4",
"webpack-merge": "^4.1.2"
}, },
"dependencies": { "dependencies": {
"@material-ui/core": "^1.2.0", "@material-ui/core": "^1.2.0",
......
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CleanWebpackPlugin = require('clean-webpack-plugin');
const webpack = require('webpack');
const outputDirectory = 'dist/public';
module.exports = {
entry: {
app: './src/client/index.js',
},
plugins: [
new CleanWebpackPlugin(['dist']),
new HtmlWebpackPlugin({
title: 'Hipla',
// Load a custom template
template: 'src/client/index.html',
}),
new webpack.NamedModulesPlugin(),
new webpack.HotModuleReplacementPlugin(),
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, outputDirectory),
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015', 'react', 'stage-2']
},
},
{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
],
},
{
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader',
],
},
],
},
resolve: {
extensions: ['.js', '.jsx'],
},
};
const merge = require('webpack-merge');
const common = require('./webpack.client.common.js');
module.exports = merge(common, {
mode: 'development',
devtool: 'inline-source-map',
devServer: {
contentBase: './dist',
hot: true,
port: 8080,
open: true,
proxy: {
'/api': 'http://localhost:3000'
}
}
});
const webpack = require('webpack');
const merge = require('webpack-merge');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const common = require('./webpack.client.common.js');
module.exports = merge(common, {
mode: 'production',
devtool: 'source-map',
plugins: [
new UglifyJSPlugin({
sourceMap: true
}),
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('production')
})
]
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment