Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ demo-app
├── .eslintignore
├── .prettierrc
├── .prettierignore
├── docker
│ ├── dev.js
│ ├── docker-compose.yml
│ └── Dockerfile.dev
├── public
│ ├── favicon.ico
│ ├── index.html
Expand Down Expand Up @@ -64,6 +68,10 @@ demo-app
├── .eslintignore
├── .prettierrc
├── .prettierignore
├── docker
│ ├── dev.js
│ ├── docker-compose.yml
│ └── Dockerfile.dev
├── public
│   ├── favicon.ico
│   ├── index.html
Expand Down Expand Up @@ -100,6 +108,12 @@ before running this first run `npm run build`.
Start the development server on default port `8080`.<br>
Starts server in hot mode but doesn't preserve state of component if any while reloading.

### `npm run docker:dev`

Start the development server inside the docker container.<br>
Maps machines port `8080` to `docker` container port `8080`.<br>
Helpful in case you want to do development inside container keeping the environment same for everyone, removes the need for changing node version for different applications.

### `npm run dev:hot`

Start the development server on default port `8080`.<br>
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "create-react-webpack",
"version": "0.0.9",
"version": "0.1.0",
"description": "create-react-webpack ",
"main": "scripts/create.js",
"bin": {
Expand Down
6 changes: 6 additions & 0 deletions template/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,12 @@ Starts server in hot mode but doesn't preserve state of component if any while r
Start the development server on default port `8080`.<br>
Starts server in hot mode preserves state of component also if any while applying hot load patch.

### `npm run docker:dev`

Start the development server inside the docker container.<br>
Maps machines port `8080` to `docker` container port `8080`.<br>
Helpful in case you want to do development inside container keeping the environment same for everyone, removes the need for changing node version for different applications.

### `npm test`

Launches Test Runner in the intreactive manner.
Expand Down
16 changes: 16 additions & 0 deletions template/docker/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#base image
FROM node:alpine

#working directory
WORKDIR /app

#copy package
COPY package.json .

#install dependencies
RUN npm install

#copy rest of source
COPY . .

CMD ["npm","run","dev:hot"]
10 changes: 10 additions & 0 deletions template/docker/dev.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const Child_Process = require("child_process");

var args = process.argv.splice(2);

Child_Process.execSync(
`docker-compose --file docker/docker-compose.yml up ${args}`,
{
stdio: "inherit"
}
);
11 changes: 11 additions & 0 deletions template/docker/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
version: "3"
services:
web:
build:
context: ../
dockerfile: ./docker/Dockerfile.dev
ports:
- "8080:8080"
volumes:
- /app/node_modules
- ../:/app
1 change: 1 addition & 0 deletions template/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"build": "webpack --config webpack.config.prod.js",
"dev": "webpack-dev-server --config webpack.config.dev.js",
"dev:hot": "npm run dev -- --hot",
"docker:dev": "node docker/dev.js",
"test": "jest",
"format": "pretty-quick",
"lint": "eslint ./"
Expand Down
1 change: 1 addition & 0 deletions template/webpack.config.dev.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ module.exports = merge(baseConfig, {
devServer: {
contentBase: path.join(__dirname, "public"),
compress: true,
host: "0.0.0.0",
open: true,
port: process.env.PORT,
publicPath: "/"
Expand Down