Minimum boilerplate template for front-end applications built with node
- Clone this repository and install the node dependecies with:
npm install
- The default server is set to Express and can be started with:
npm start
- An unset
NODE_ENV
variable will default to the production version of the Webpack bundle along with express server.
- An unset
- Open
localhost:8080
to view the production instance of the server.
- Set the
NODE_ENV
variable into your.zshenv
file with the command:echo 'export NODE_ENV=development' >> ~/.zshenv
- Then reload the changes to the file with:
source ~/.zshenv
- Test that the environment variable has been correctly set with:
echo $NODE_ENV
Use Powershell set NODE_ENV
variable to development
with:
$env:NODE_ENV="development"
- Note: This value will not persist after you close the terminal.
To persist the NODE_ENV
after closing Powershell follow these steps:
- Type in
environment
into the search bar and open the dialog box forSystem Properties
and underAdvanced
click onEnvironment Variables
- Under the
System variables
, click theNew...
button to create an environment variable with the values:Variable name: NODE_ENV Variable value: development
- If you work on a shared machine, you should probably add the variable to
User variables
instead ofSystem variables
.
- If you work on a shared machine, you should probably add the variable to
- After entering these values make sure to exit by clicking
OK
otherwise the changes will not save. - Restart Windows to use the updated environment variables.
- The express backend is already configured to serve static files from
public/
but you can change the values of the webpack output path and express static folder inapp.json
.{ "express": { "output": { "path": "./public/js" }, "static": "public" } }
-
The frontend and backend repositories should share the same parent directory
- Set output directory for backend in
app.json
underlocal.output.path
{ "local": { "output": { "path": "../backend-repository/static" } } }
- Folder structure should look something like this:
GitHub ├── backend-repository └── frontend-repository
- Set output directory for backend in
-
After updating those configurations, run to build with webpack and watch for changes with:
npm run build-local-watch
- Build the webpack bundle to the same directory without watching for changes with
npm run build-local
- Build the webpack bundle to the same directory without watching for changes with
-
You may need to reload bundle updates with a hard refresh command / Ctrl + shift + R to load changes.
- Webpack will continue to watch for changes, but you will typically need to hard refresh the browser to tell the server to send the updated bundle file.