diff --git a/webpack.common.js b/.webpack/webpack.common.js similarity index 100% rename from webpack.common.js rename to .webpack/webpack.common.js diff --git a/webpack.dev.js b/.webpack/webpack.dev.js similarity index 76% rename from webpack.dev.js rename to .webpack/webpack.dev.js index 47e5729..aa03233 100644 --- a/webpack.dev.js +++ b/.webpack/webpack.dev.js @@ -8,22 +8,22 @@ const BrowserConfig = { entry: './src/client/index.js', output: { path: path.resolve(__dirname), - filename: './public/js/app.bundle.js', - publicPath: '/' + filename: '../public/js/app.bundle.js', + publicPath: '/', }, target: 'web', devServer: { - historyApiFallback: true + historyApiFallback: true, }, stats: { - colors: true + colors: true, }, devtool: 'source-map', plugins: [ new webpack.DefinePlugin({ - __isBrowser__: 'true' - }) - ] + __isBrowser__: 'true', + }), + ], }; const ServerConfig = { @@ -31,23 +31,23 @@ const ServerConfig = { entry: './src/server/index.js', output: { path: path.resolve(__dirname), - filename: './bin/server.js', + filename: '../bin/server.js', libraryTarget: 'commonjs2', - publicPath: '/' + publicPath: '/', }, node: { - __dirname: false + __dirname: false, }, target: 'node', plugins: [ new webpack.DefinePlugin({ - __isBrowser__: 'false' - }) + __isBrowser__: 'false', + }), ], devServer: { - historyApiFallback: true - } + historyApiFallback: true, + }, }; const browserWebpackConfig = merge(common, BrowserConfig); diff --git a/.webpack/webpack.prod.js b/.webpack/webpack.prod.js new file mode 100644 index 0000000..372be2d --- /dev/null +++ b/.webpack/webpack.prod.js @@ -0,0 +1,36 @@ +const merge = require('webpack-merge'); +const common = require('./webpack.common.js'); +const { resolve } = require('path'); +process.env.NODE_ENV = process.env.NODE_ENV || 'production'; +const BrowserConfig = { + name: 'browser', + mode: 'production', + entry: './src/client/index.js', + output: { + path: resolve(__dirname), + filename: '../dist/public/js/app.bundle.js', + publicPath: '/', + }, + target: 'web', +}; + +const ServerConfig = { + name: 'server', + entry: './src/server/index.js', + mode: 'production', + output: { + path: resolve(__dirname), + filename: '../dist/server/index.js', + libraryTarget: 'commonjs2', + publicPath: '/', + }, + node: { + __dirname: false, + }, + target: 'node', +}; + +const browserWebpackConfig = merge(common, BrowserConfig); +const serverWebpackConfig = merge(common, ServerConfig); + +module.exports = [browserWebpackConfig, serverWebpackConfig]; diff --git a/package.json b/package.json index d48d1bb..25d81e8 100644 --- a/package.json +++ b/package.json @@ -4,11 +4,11 @@ "description": "", "scripts": { "test": "jest --forceExit ", - "client:start": "webpack-dev-server --mode=development --config webpack.dev.js", - "webpack": "npm run clean && webpack --mode=development --config webpack.dev.js", + "client:start": "webpack-dev-server --mode=development --config .webpack/webpack.dev.js", + "webpack": "npm run clean && webpack --mode=development --config .webpack/webpack.dev.js", "coveralls": "jest --coverage --forceExit && cat ./coverage/lcov.info | coveralls", "server:dev": "nodemon NODE_ENV=development --inspect bin/server.js", - "watch": "webpack --watch --mode=development --config webpack.dev.js", + "watch": "webpack --watch --mode=development --config .webpack/webpack.dev.js", "lint": "eslint . ", "lint:fix": "eslint . --fix", "server:prod": "nodemon NODE_ENV=production dist/server", @@ -20,7 +20,7 @@ "docker-start:prod": "npm run build && npm run server:prod", "prod:clean": "rimraf dist", "prod:build": "make-dir ./dist && make-dir ./dist/server && ncp ./public ./dist/public && make-dir ./dist/public/js", - "build": "cross-env NODE_ENV=production webpack --config webpack.prod.js", + "build": "cross-env NODE_ENV=production webpack --config .webpack/webpack.prod.js", "prebuild": "npm run prod:clean && npm run prod:build" }, "jest": { diff --git a/webpack.prod.js b/webpack.prod.js deleted file mode 100644 index b855fa5..0000000 --- a/webpack.prod.js +++ /dev/null @@ -1,36 +0,0 @@ -const merge = require("webpack-merge"); -const common = require("./webpack.common.js"); -const { resolve } = require("path"); -process.env.NODE_ENV = process.env.NODE_ENV || "production"; -const BrowserConfig = { - name: "browser", - mode: "production", - entry: "./src/client/index.js", - output: { - path: resolve(__dirname), - filename: "./dist/public/js/app.bundle.js", - publicPath: "/" - }, - target: "web" -}; - -const ServerConfig = { - name: "server", - entry: "./src/server/index.js", - mode: "production", - output: { - path: resolve(__dirname), - filename: "./dist/server/index.js", - libraryTarget: "commonjs2", - publicPath: "/" - }, - node: { - __dirname: false - }, - target: "node" -}; - -const browserWebpackConfig = merge(common, BrowserConfig); -const serverWebpackConfig = merge(common, ServerConfig); - -module.exports = [browserWebpackConfig, serverWebpackConfig];