# First Install Tracim ## tracim_frontend_lib A generic repo containing generic components for tracim_frontend_lib and apps #### get the source of tracim_frontend_lib ``` git clone git@github.com:tracim/tracim_frontend_lib.git ``` #### install tracim_frontend_lib ``` cd tracim_frontend_lib npm i ``` #### build tracim_frontend_lib and add the "eslint-disabled" and "eslint-enable" on top and bottom of builded file ``` npm run build && echo '/* eslint-disable */' | cat - dist/tracim_lib.js > temp && mv temp dist/tracim_lib.js && printf '\n/* eslint-enable */\n' >> dist/tracim_lib.js ``` ##### For Dev Only : Create a npm link for tracim_frontend_lib ``` npm link ``` note: link is called tracim_lib, it will be changed ## tracim_frontend The main repository #### get the source of tracim_frontend ``` git clone git@github.com:tracim/tracim_frontend.git ``` #### install tracim_frontend ``` cd tracim_frontend npm i ``` #### For Dev Only : Link tracim_frontend to tracim_frontend_lib with npm ``` npm link tracim_lib ``` This will replace the remote dependency tracim_lib in package.json by local dependency tracim_frontend_lib allowing auto propagation of tracim_frontend_lib updates without having to increment the version number #### build tracim_frontend ``` npm run build ``` ## tracim Apps For EACH apps do: (here is tracim_frontend_app_pagehtml as an exemple) #### get the source ``` git clone git@github.com:tracim/tracim_frontend_app_pagehtml.git ``` #### install tracim_frontend_app_pagehtml ``` cd tracim_frontend_app_pagehtml npm i ``` #### For Dev Only : Link tracim_frontend_app_pagehtml to tracim_frontend_lib with npm ``` npm link tracim_lib ``` This will replace the remote dependency tracim_lib in package.json by local dependency tracim_frontend_lib allowing auto propagation of tracim_frontend_lib updates without having to increment the version number #### build tracim_frontend ``` npm run build ``` #### copy the builded source to tracim_frontend ``` cp dist/pageHtml.app.js "tracim_frontend repo"/dist/app ``` # Update All Tracim ### For Development ``` cd tracim_frontend_lib git pull origin develop npm i npm run build && echo '/* eslint-disable */' | cat - dist/tracim_lib.js > temp && mv temp dist/tracim_lib.js && printf '\n/* eslint-enable */\n' >> dist/tracim_lib.js # the npm link will then update the lib in tracim_frontend and in all apps repositories cd .. ./update_all_apps_develop.sh # this will update the repo app's, build the source and copy the result to tracim_frontend cd tracim_frontend git pull origin develop npm i npm run servdev-dashboard ``` #### update_all_apps_develop.sh : ``` #!/bin/bash echo '=== Start build all apps ' declare -a listApp=('pageHtml' 'thread') for app in "${listApp[@]}" do echo "= building of ${app} " cd "folder of app" git pull origin develop npm i npm run build if cp ~/repo/tracim_app/${app}/dist/${app}.app.js ~/repo/tracim_frontend/dist/app ; then echo "- ${app}.app.js copy successful" else echo "=> ${app}.app.js copy failed" fi done echo ' === End build' ``` ### For Production No need to build tracim_frontend_lib, each repo will get the last version with `npm i`. Assuming tracim_frontend_lib version in package.json has been updated accordingly. ``` ./update_all_apps_master.sh # this will update the app's repo, build the source and copy the result to tracim_frontend cd tracim_frontend git pull origin master npm i npm run build ```