1. Abstract
This simple tutorial makes available in GitHub Pages a project created with create-near-app with some slight modifications done by following the steps in this tutorial.
If you want to know about how I install the tools used in this tutorial, read my first tutorial about NEAR.
3. Creating an account for the contract
To follow the next steps, I created an account called
paulojeronimo-test4.testnet
in https://wallet.testnet.near.org/.
$ near login
$ export CONTRACT_NAME=paulojeronimo-test4.testnet
$ near create-account near-greeting-frontend.$CONTRACT_NAME --masterAccount $CONTRACT_NAME
4. Setting the contract name
$ f=frontend/assets/js/near/config.js $ vim $f # change the first line according to the follow output: $ sed -n '1p' $f const CONTRACT_NAME = process.env.CONTRACT_NAME || 'near-greeting-frontend.paulojeronimo-test4.testnet
5. Deploying and testing locally
$ git init $ git add . $ git commit -m 'Initial commit'
Create the repository in GitHub.
I use the gh command to do this in this way: $ gh repo create $(basename "$PWD") --source=. --public --remote=origin --push If you need to login in GitHub, type My created repo: https://github.com/paulojeronimo/near-greeting-frontend |
Run the app locally:
$ npm run dev
This will open http://localhost:1234.
Press the Sign in
button.
Change greeting to what ever you want and click Save
.
Check the code, according to instructions in the app.
Press the Sign out
button.
Type Ctrl+C to stop the app.
6. Deploying to GitHub Pages
Update .gitignore
:
$ cat >> .gitignore <<'EOF' .parcel-cache/ contract/Cargo.lock contract/target/ EOF
Install package gh-pages
and stage these changes.
$ npm install -D gh-pages $ git add .
Copy this content to the file /tmp/1.diff
:
diff --git a/package.json b/package.json
index a985126..4e78bdf 100644
--- a/package.json
+++ b/package.json
@@ -3,10 +3,12 @@
"version": "1.0.0",
"license": "(MIT AND Apache-2.0)",
"scripts": {
+ "predeploy": "rm -rf dist && npm run build:web",
"build": "npm run build:contract && npm run build:web",
"build:contract": "cd contract && rustup target add wasm32-unknown-unknown && cargo build --all --target wasm32-unknown-unknown --release && cp ./target/wasm32-unknown-unknown/release/greeter.wasm ../out/main.wasm",
"build:web": "parcel build frontend/index.html --public-url ./",
- "deploy": "npm run build:contract && near dev-deploy",
+ "deploy": "npm run build:contract && near dev-deploy && npm run deploy:gh-pages",
+ "deploy:gh-pages": "gh-pages -d dist",
"start": "npm run deploy && echo The app is starting! It will automatically open in your browser when ready && env-cmd -f ./neardev/dev-account.env parcel frontend/index.html --open",
"dev": "nodemon --watch contract -e ts --exec \"npm run start\"",
"test": "npm run build:contract && npm run test:unit && npm run test:integration",
$ git apply /tmp/1.diff $ git add . $ git commit -m 'Added "deploy to gh-pages" support'
After the changes above, you can run the deploy script to make app available in GitHub Pages:
$ npm run deploy
In my case, this is the URL of the deployed app: https://paulojeronimo.com/near-greeting-frontend
Currently I’m trying to solve this issue:
|
7. Other useful commands and extra references
7.1. Removing the existing repository through command line
$ gh repo delete near-greeting-frontend ? Type paulojeronimo/near-greeting-frontend to confirm deletion: paulojeronimo/near-greeting-frontend ✓ Deleted repository paulojeronimo/near-greeting-frontend
7.2. Extra feferences
-
https://www.youtube.com/watch?v=sm8w9tDnMZc - Blockheads Ep 10: How to make a blockchain voting app