From eadad9235b335b7dcf3ff8520e084d98555968b7 Mon Sep 17 00:00:00 2001 From: Raoul Millais Date: Wed, 21 Nov 2018 14:55:09 +0000 Subject: [PATCH 1/5] docs: add parceljs browser example --- examples/browser-parceljs/.babelrc | 4 +++ examples/browser-parceljs/.gitignore | 6 ++++ examples/browser-parceljs/README.md | 38 ++++++++++++++++++++ examples/browser-parceljs/img/1.png | Bin 0 -> 66996 bytes examples/browser-parceljs/package.json | 28 +++++++++++++++ examples/browser-parceljs/public/index.html | 23 ++++++++++++ examples/browser-parceljs/public/index.js | 35 ++++++++++++++++++ 7 files changed, 134 insertions(+) create mode 100644 examples/browser-parceljs/.babelrc create mode 100644 examples/browser-parceljs/.gitignore create mode 100644 examples/browser-parceljs/README.md create mode 100644 examples/browser-parceljs/img/1.png create mode 100644 examples/browser-parceljs/package.json create mode 100644 examples/browser-parceljs/public/index.html create mode 100644 examples/browser-parceljs/public/index.js diff --git a/examples/browser-parceljs/.babelrc b/examples/browser-parceljs/.babelrc new file mode 100644 index 0000000000..7fa2b0fc34 --- /dev/null +++ b/examples/browser-parceljs/.babelrc @@ -0,0 +1,4 @@ +{ + "presets": ["@babel/preset-env"], + "plugins": ["syntax-async-functions","transform-regenerator"] +} diff --git a/examples/browser-parceljs/.gitignore b/examples/browser-parceljs/.gitignore new file mode 100644 index 0000000000..75d3ff8161 --- /dev/null +++ b/examples/browser-parceljs/.gitignore @@ -0,0 +1,6 @@ +dist/ +/node_modules/ +.nvmrc +.cache +npm-debug.log +.DS_Store diff --git a/examples/browser-parceljs/README.md b/examples/browser-parceljs/README.md new file mode 100644 index 0000000000..a1fa639314 --- /dev/null +++ b/examples/browser-parceljs/README.md @@ -0,0 +1,38 @@ +# Bundle js-ipfs with [Parcel.js](https://parceljs.org/) + +> In this example, you will find a boilerplate application that connects to +IPFS using JS-IPFS and is bundled with [Parcel.js](https://parceljs.org/), so +that you can follow it for creating Parcel.js bundled js-ipfs DApps. + +## Before you start + +1. Start your IPFS daemon of choice e.g. `ipfs daemon` (optional if you do not +want to serve the example over IPFS) +1. Open a new terminal +1. `cd` into this folder +1. Run `npm install` + +## Running this example in development mode with auto-reloading + +1. `npm start` +1. Open your browser at `http://localhost:1234` + +You should see the following: + +![](https://ipfs.io/ipfs/QmSiZ18GffagbbJ3z72kK7u3SP9MXqBB1vrU1KFYP3GMYs/1.png) + +## Build and add to IPFS + +1. Clear the contents of `dist` if this is not the first time you are building +e.g. `rm -r dist` on a unix system +1. `npm run build` +1. The production build of the site is now in the `dist` folder +1. Add the folder to ipfs using your IPFS client of choice e.g. +`ipfs add -r dist` + +The last hash output is the hash of the directory. This can be used to access +this example served over IPFS and will be accessible by a public gateway: + +> https://ipfs.io/ipfs// + + diff --git a/examples/browser-parceljs/img/1.png b/examples/browser-parceljs/img/1.png new file mode 100644 index 0000000000000000000000000000000000000000..a2a5851522911ea72903294936c84d72f472666c GIT binary patch literal 66996 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 literal 0 HcmV?d00001 diff --git a/examples/browser-parceljs/package.json b/examples/browser-parceljs/package.json new file mode 100644 index 0000000000..3a4753a027 --- /dev/null +++ b/examples/browser-parceljs/package.json @@ -0,0 +1,28 @@ +{ + "name": "playground", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "lint": "standard public/**/*.js", + "test": "echo \"Error: no test specified\" && exit 1", + "start": "parcel public/index.html", + "build": "parcel build public/index.html --public-url ./" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "ipfs": "file:../../" + }, + "devDependencies": { + "@babel/cli": "^7.1.5", + "@babel/core": "^7.1.6", + "@babel/preset-env": "^7.1.6", + "babel-plugin-syntax-async-functions": "^6.13.0", + "babel-plugin-transform-regenerator": "^6.26.0", + "babel-polyfill": "^6.26.0", + "parcel-bundler": "^1.10.3", + "standard": "^12.0.1" + } +} diff --git a/examples/browser-parceljs/public/index.html b/examples/browser-parceljs/public/index.html new file mode 100644 index 0000000000..5431174d89 --- /dev/null +++ b/examples/browser-parceljs/public/index.html @@ -0,0 +1,23 @@ + + + + + + + js-ipfs parcel.js browser example + + + +
+

Connecting to IPFS...

+
+ +
+

+    
+ + + + + + diff --git a/examples/browser-parceljs/public/index.js b/examples/browser-parceljs/public/index.js new file mode 100644 index 0000000000..7632d44246 --- /dev/null +++ b/examples/browser-parceljs/public/index.js @@ -0,0 +1,35 @@ +import 'babel-polyfill' +import IPFS from 'ipfs' + +// IPFS node setup +const node = new IPFS({ repo: String(Math.random() + Date.now()) }) + +// UI elements +const status = document.getElementById('status') +const output = document.getElementById('output') + +output.textContent = '' + +function log (txt) { + console.info(txt) + output.textContent += `${txt.trim()}\n` +} + +node.on('ready', async () => { + status.innerText = 'Connected to IPFS :)' + + const version = await node.version() + + log(`The IPFS node version is ${version.version}`) + + const filesAdded = await node.add({ + path: 'hello-parcel.txt', + content: Buffer.from('Hello from parcel.js bundled ipfs example') + }) + + log(`This page added ${filesAdded[0].path} to IPFS and its hash is ${filesAdded[0].hash}`) + + const fileBuffer = await node.cat(filesAdded[0].hash) + + log(`The contents of the file was: ${fileBuffer.toString()}`) +}) From 170cbc7abf2976f3658faa4f4f6a0aa9a64fb6f3 Mon Sep 17 00:00:00 2001 From: Raoul Millais Date: Wed, 21 Nov 2018 16:23:11 +0000 Subject: [PATCH 2/5] docs: add link to parceljs example --- examples/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/examples/README.md b/examples/README.md index b7b587eeb5..a4946e37ff 100644 --- a/examples/README.md +++ b/examples/README.md @@ -18,6 +18,7 @@ Let us know if you find any issue or if you want to contribute and add a new tut ## Examples - [js-ipfs in the browser with Browserify](./browser-browserify) +- [js-ipfs in the browser with Parcel.js](./browser-parceljs) - [js-ipfs in the browser with WebPack](./browser-webpack) - [js-ipfs in the browser with a `