Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

After generating a new folder with the instrumented code of your Front-End application, the content of this folder needs to be deployed instead of your original code on the server for the client browser to work against. Below, you’ll find several Best Practices in use among Sealights customers:

Table of Contents
Note

In the sample commands below, we refer to your application’s artifact as dist folder, as a default.
Please make sure to update the command according to your specific configuration, and replace the parameter with the path relevant to your project's settings. For example: apps, code, js,…

Deploying the folder containing the instrumented code

For example, if your original folder was named ‘dist 'dist' and the new folder with the instrumented code is 'sl_dist’, you can follow the steps below:

  1. Rename the original folder from ‘dist’ to ‘dist_original

    Code Block
    Windows OS:
    rename dist dist_original
    
    Linux/Unix OS:
    mv dist dist_original
  2. Use the instrumented folder instead of using one of the following options by renaming the ‘sl_dist’ to ‘dist

    Code Block
    Windows OS:
    rename sl_dist dist
    
    Linux/Unix OS:
    mv sl_dist dist

On Unix/Linux system you also have the ability to define a ‘dist’ soft link to the ‘sl_dist’ folder.

ln -s sl_dist dist

...

You have the ability to split the single slnodejs buildscan command into a build scan command and several “instrumentations only” commands. For example below, we’ll instrument the application for two different LabIDs (MyFirstLab and My-2nd-Lab)

Code Block
languagebash
#Build Scan without Instrumentation - Unix
./node_modules/.bin/npx slnodejs buildscan --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --workspacepath dist --scm git --projectRoot /path/to/source/root

#Instrumentation for first environment (i.e. MyFirstLab)
./node_modules/.bin/
npx slnodejs buildscan --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --labid MyFirstLab --instrumentForBrowsers --instrumentationOnly --workspacepath dist --outputpath sl_dist_MyFirstLab 

#Instrumentation for second environment (i.e. My-2nd-Lab)
./node_modules/.bin/
npx slnodejs buildscan --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --labid My-2nd-Lab --instrumentForBrowsers --instrumentationOnly --workspacepath dist --outputpath sl_dist_My-2nd-Lab  

...

Another solution is to execute the slnodejs build scan --instrumentForBrowsers command with a generic labid that is replaced in the JS files (string operation) prior to the artefact artifact deployment in each environment

Code Block
languagebash
Unix:
./node_modules/.bin/npx slnodejs buildscan --tokenfile /path/to/sltoken.txt --buildsessionidfile buildSessionId --labid sl_LabId_ReplaceMe --instrumentForBrowsers --workspacepath dist --outputpath sl_dist --scm git --projectRoot /path/to/source/root

#Updating #InstrumentationLabID for first environment (i.e. MyFirstLab)
find sl_dist -type f -name "*.js" -exec sed -i 's/sl_LabId_ReplaceMe/MyFirstLab/g' {} +

#Second#Updating InstrumentationLabID withfor asecond "clean copy" of sl_dist for environemnt (i.e. My-2nd-Lab)
find sl_dist -type f -name "*.js" -exec sed -i 's/sl_LabId_ReplaceMe/My-2nd-Lab/g' {} + 

...