refl1d-webview-client v0.1.26
refl1d-web-gui
Web-based client for Refl1D webview GUI
Setting up development environment
This package depends on the bumps-webview-client package, which can be installed in a few ways:
Install bumps client from NPM
This will get the most recent version that has been published to npmjs.com (or update an existing version)
npm install bumps-webview-client@latestUse current git version
This gives you the most up-to-date version, but requires a little setup
N.B. For the example below, bumps and refl1d have been cloned to the ~/dev/ folder. Your
install location will be different...
Create a conda environment
conda create -n refl1d-dev python nodejs conda activate refl1d-devClone the bumps repository (only need to do once)
cd ~/dev git clone https://github.com/bumps/bumps cd bumps git checkout webview- Install
bumpslibrary in development modepip install -e . pip install -r webview-requirements - Navigate to the webview client folder
cd ~/dev/bumps/bumps/webview/client - Install dependencies
npm install - Add
bumps-webview-clientto npm linksnpm link - Clone the refl1d repository
cd ~/dev git clone https://github.com/reflectometry/refl1d cd refl1d git checkout webview - Install
refl1dpython librarypip install -e . - Navigate to webview client folder
cd ~/dev/refl1d/refl1d/webview/client - Install dependencies
npm install - Link to local
bumps-webview-clientfolder (this overwrites the bumps-webview-client installation fromnpm installwith a hard link to the local folder)npm link bumps-webview-client - Build the client
npm run build
Rebuilding after changes
Now you can run the server, and it will use this locally built client. After changes to the source code (to incorporate new client features):
cd ~/dev/bumps
git pull
cd ~/dev/refl1d
git pull
cd ~/dev/refl1d/refl1d/webview/client
npm run buildHot-reloading client preview
This mode is useful for rapid prototyping (esp. trying to fix styling in the client)
cd ~/dev/refl1d/refl1d/webview/client
npx vite... this will start a local server for the rendered client at something like http://localhost:5173 (a link will appear in the console).
In a different terminal, you have to also start the python server, which will be listening on a different port, e.g.
python -m refl1d.webview.server --port 8888Then, in your browser, you would navigate to the server that is rendering the client code, but also passing information on where the API server is located, e.g.
https://localhost:5173/?server=http://localhost:8888
Changes made to the client code, e.g. the .vue files, will be immediately reflected in the running client.
(When using a pre-built client, the python API server will also serve the static client files, but for hot-reloading we want those two services separated.)
Recommended IDE Setup
VSCode + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).
Customize configuration
See Vite Configuration Reference.
Project Setup
npm installCompile and Hot-Reload for Development
npm run devCompile and Minify for Production
npm run buildPublishing new client versions:
(...after checking to make sure there aren't extraneous files in this folder)
npm version patch
npm publishand then
git commit package.json -m "webview client version bump"
git pull
git push1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago
3 years ago
2 years ago
2 years ago
3 years ago