Difference between revisions of "User:Saul/Realtime app"

From Organic Design wiki
(Setup: Subdivided and adding lost more info.)
m (Setup: Changed heading sizes)
Line 1: Line 1:
 
This is the documentation for the stack I use for creating a real-time application. The stack consists of node.js and feathers.js for the server, the client uses: Vue, vue-router, vuex and setup using the vue webpack.
 
This is the documentation for the stack I use for creating a real-time application. The stack consists of node.js and feathers.js for the server, the client uses: Vue, vue-router, vuex and setup using the vue webpack.
  
== Setup ==
+
= Setup =
=== Install And Generate Files ===
+
== Install And Generate Files ==
 
The following commands will setup the app:
 
The following commands will setup the app:
 
<source lang="bash">
 
<source lang="bash">
Line 11: Line 11:
 
</source>
 
</source>
  
=== Modify Files ===
+
== Modify Files ==
 
A few changes are need to finish connecting the app:<br>
 
A few changes are need to finish connecting the app:<br>
 
<br>
 
<br>
Line 43: Line 43:
 
</source>
 
</source>
  
=== Fix Structure, Install, And Cleanup ===
+
== Fix Structure, Install, And Cleanup ==
 
These commands will finish arranging the files (make sure you are still in the server dir):
 
These commands will finish arranging the files (make sure you are still in the server dir):
 
<source lang="bash">
 
<source lang="bash">
Line 55: Line 55:
 
npm i # install dependencies
 
npm i # install dependencies
 
</source>
 
</source>
=== Run App ===
+
== Run App ==
 
To run in development:
 
To run in development:
 
<source lang="bash">
 
<source lang="bash">
Line 66: Line 66:
 
npm run server # run the backend
 
npm run server # run the backend
 
</source>
 
</source>
=== See Also ===
+
== See Also ==
 
*[[User:Saul/linode#Setting_Up_Node.js]]
 
*[[User:Saul/linode#Setting_Up_Node.js]]

Revision as of 17:07, 19 March 2018

This is the documentation for the stack I use for creating a real-time application. The stack consists of node.js and feathers.js for the server, the client uses: Vue, vue-router, vuex and setup using the vue webpack.

Setup

Install And Generate Files

The following commands will setup the app:

sudo npm install -g vue @feathersjs/cli # install dependencies globally
sudo vue init webpack-simple APPNAME # create a new project using the "webpack-simple" template
mkdir APPNAME/server && cd APPNAME/server
feathers generate app # generate the feathers app

Modify Files

A few changes are need to finish connecting the app:

Copy all dependencies from server/package.json to the package.json located in the root dir. Do the same for request and request-promise from devDependencies.
Add to the scripts section in package.json (this allows the back end to be started via "npm run server"):

"server": "node server/src/",

Add to package.json:

"directories": {
	"lib": "server/src"
},

Modify the dev script in package.json to:

"cross-env NODE_ENV=development webpack-dev-server --content-base server/public --open --hot"

Modify the config/default.json file like so:

"public": "../server/public/",

Modify the webpack.config.js by changing the path and publicPath like so:

path: path.resolve(__dirname, "server", "public"),
publicPath: "/",

Modify the index.html so that the script build source is:

<script src="build.js"></script>

Fix Structure, Install, And Cleanup

These commands will finish arranging the files (make sure you are still in the server dir):

mv config ../config && mv .editorconfig ../.editorconfig && mv ../index.html public/index.html # move then files to the proper dirs
rm package.json LICENSE .gitignore .npmignore README.md .eslintrc.json package-lock.json -R test node_modules # delete the unnecessary files

And to install the dependencies and run:

cd .. # go back to the project root
npm i @feathersjs/client vuex # install additional dependencies (socket.io-client may also be needed?)
npm i # install dependencies

Run App

To run in development:

npm run dev # this launches the front-end
npm run server # this launches the back-end

To run in production:

npm build # build the front-end into the backend
npm run server # run the backend

See Also