Showing
9 changed files
with
162 additions
and
0 deletions
| 1 | +#!/usr/bin/env node | |
| 2 | + | |
| 3 | +const { spawn } = require("child_process"); | |
| 4 | +const fs = require("fs"); | |
| 5 | + | |
| 6 | +let folderName = '.'; | |
| 7 | + | |
| 8 | +if (process.argv.length >= 3) { | |
| 9 | + folderName = process.argv[2]; | |
| 10 | + if (!fs.existsSync(folderName)) { | |
| 11 | + fs.mkdirSync(folderName); | |
| 12 | + } | |
| 13 | +} | |
| 14 | + | |
| 15 | +const clone = spawn("git", ["clone", "https://github.com/rustwasm/create-wasm-app.git", folderName]); | |
| 16 | + | |
| 17 | +clone.on("close", code => { | |
| 18 | + if (code !== 0) { | |
| 19 | + console.error("cloning the template failed!") | |
| 20 | + process.exit(code); | |
| 21 | + } else { | |
| 22 | + console.log("🦀 Rust + 🕸 Wasm = ❤"); | |
| 23 | + } | |
| 24 | +}); | ... | ... |
tutorial/wasm-game-of-life/www/.gitignore
0 → 100644
tutorial/wasm-game-of-life/www/README.md
0 → 100644
| 1 | +<div align="center"> | |
| 2 | + | |
| 3 | + <h1><code>create-wasm-app</code></h1> | |
| 4 | + | |
| 5 | + <strong>An <code>npm init</code> template for kick starting a project that uses NPM packages containing Rust-generated WebAssembly and bundles them with Webpack.</strong> | |
| 6 | + | |
| 7 | + <p> | |
| 8 | + <a href="https://travis-ci.org/rustwasm/create-wasm-app"><img src="https://img.shields.io/travis/rustwasm/create-wasm-app.svg?style=flat-square" alt="Build Status" /></a> | |
| 9 | + </p> | |
| 10 | + | |
| 11 | + <h3> | |
| 12 | + <a href="#usage">Usage</a> | |
| 13 | + <span> | </span> | |
| 14 | + <a href="https://discordapp.com/channels/442252698964721669/443151097398296587">Chat</a> | |
| 15 | + </h3> | |
| 16 | + | |
| 17 | + <sub>Built with 🦀🕸 by <a href="https://rustwasm.github.io/">The Rust and WebAssembly Working Group</a></sub> | |
| 18 | +</div> | |
| 19 | + | |
| 20 | +## About | |
| 21 | + | |
| 22 | +This template is designed for depending on NPM packages that contain | |
| 23 | +Rust-generated WebAssembly and using them to create a Website. | |
| 24 | + | |
| 25 | +* Want to create an NPM package with Rust and WebAssembly? [Check out | |
| 26 | + `wasm-pack-template`.](https://github.com/rustwasm/wasm-pack-template) | |
| 27 | +* Want to make a monorepo-style Website without publishing to NPM? Check out | |
| 28 | + [`rust-webpack-template`](https://github.com/rustwasm/rust-webpack-template) | |
| 29 | + and/or | |
| 30 | + [`rust-parcel-template`](https://github.com/rustwasm/rust-parcel-template). | |
| 31 | + | |
| 32 | +## 🚴 Usage | |
| 33 | + | |
| 34 | +``` | |
| 35 | +npm init wasm-app | |
| 36 | +``` | |
| 37 | + | |
| 38 | +## 🔋 Batteries Included | |
| 39 | + | |
| 40 | +- `.gitignore`: ignores `node_modules` | |
| 41 | +- `LICENSE-APACHE` and `LICENSE-MIT`: most Rust projects are licensed this way, so these are included for you | |
| 42 | +- `README.md`: the file you are reading now! | |
| 43 | +- `index.html`: a bare bones html document that includes the webpack bundle | |
| 44 | +- `index.js`: example js file with a comment showing how to import and use a wasm pkg | |
| 45 | +- `package.json` and `package-lock.json`: | |
| 46 | + - pulls in devDependencies for using webpack: | |
| 47 | + - [`webpack`](https://www.npmjs.com/package/webpack) | |
| 48 | + - [`webpack-cli`](https://www.npmjs.com/package/webpack-cli) | |
| 49 | + - [`webpack-dev-server`](https://www.npmjs.com/package/webpack-dev-server) | |
| 50 | + - defines a `start` script to run `webpack-dev-server` | |
| 51 | +- `webpack.config.js`: configuration file for bundling your js with webpack | |
| 52 | + | |
| 53 | +## License | |
| 54 | + | |
| 55 | +Licensed under either of | |
| 56 | + | |
| 57 | +* Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0) | |
| 58 | +* MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT) | |
| 59 | + | |
| 60 | +at your option. | |
| 61 | + | |
| 62 | +### Contribution | |
| 63 | + | |
| 64 | +Unless you explicitly state otherwise, any contribution intentionally | |
| 65 | +submitted for inclusion in the work by you, as defined in the Apache-2.0 | |
| 66 | +license, shall be dual licensed as above, without any additional terms or | |
| 67 | +conditions. | ... | ... |
tutorial/wasm-game-of-life/www/bootstrap.js
0 → 100644
| 1 | +// A dependency graph that contains any wasm must all be imported | |
| 2 | +// asynchronously. This `bootstrap.js` file does the single async import, so | |
| 3 | +// that no one else needs to worry about it again. | |
| 4 | +import("./index.js") | |
| 5 | + .catch(e => console.error("Error importing `index.js`:", e)); | ... | ... |
tutorial/wasm-game-of-life/www/index.html
0 → 100644
| 1 | +<!DOCTYPE html> | |
| 2 | +<html> | |
| 3 | + <head> | |
| 4 | + <meta charset="utf-8"> | |
| 5 | + <title>Hello wasm-pack!</title> | |
| 6 | + </head> | |
| 7 | + <body> | |
| 8 | + <noscript>This page contains webassembly and javascript content, please enable javascript in your browser.</noscript> | |
| 9 | + <script src="./bootstrap.js"></script> | |
| 10 | + </body> | |
| 11 | +</html> | ... | ... |
tutorial/wasm-game-of-life/www/index.js
0 → 100644
This diff could not be displayed because it is too large.
tutorial/wasm-game-of-life/www/package.json
0 → 100644
| 1 | +{ | |
| 2 | + "name": "create-wasm-app", | |
| 3 | + "version": "0.1.0", | |
| 4 | + "description": "create an app to consume rust-generated wasm packages", | |
| 5 | + "main": "index.js", | |
| 6 | + "bin": { | |
| 7 | + "create-wasm-app": ".bin/create-wasm-app.js" | |
| 8 | + }, | |
| 9 | + "scripts": { | |
| 10 | + "build": "webpack --config webpack.config.js", | |
| 11 | + "start": "webpack-dev-server" | |
| 12 | + }, | |
| 13 | + "repository": { | |
| 14 | + "type": "git", | |
| 15 | + "url": "git+https://github.com/rustwasm/create-wasm-app.git" | |
| 16 | + }, | |
| 17 | + "keywords": [ | |
| 18 | + "webassembly", | |
| 19 | + "wasm", | |
| 20 | + "rust", | |
| 21 | + "webpack" | |
| 22 | + ], | |
| 23 | + "author": "Ashley Williams <ashley666ashley@gmail.com>", | |
| 24 | + "license": "(MIT OR Apache-2.0)", | |
| 25 | + "bugs": { | |
| 26 | + "url": "https://github.com/rustwasm/create-wasm-app/issues" | |
| 27 | + }, | |
| 28 | + "homepage": "https://github.com/rustwasm/create-wasm-app#readme", | |
| 29 | + "devDependencies": { | |
| 30 | + "hello-wasm-pack": "^0.1.0", | |
| 31 | + "webpack": "^4.29.3", | |
| 32 | + "webpack-cli": "^3.1.0", | |
| 33 | + "webpack-dev-server": "^3.1.5", | |
| 34 | + "copy-webpack-plugin": "^5.0.0" | |
| 35 | + } | |
| 36 | +} | ... | ... |
| 1 | +const CopyWebpackPlugin = require("copy-webpack-plugin"); | |
| 2 | +const path = require('path'); | |
| 3 | + | |
| 4 | +module.exports = { | |
| 5 | + entry: "./bootstrap.js", | |
| 6 | + output: { | |
| 7 | + path: path.resolve(__dirname, "dist"), | |
| 8 | + filename: "bootstrap.js", | |
| 9 | + }, | |
| 10 | + mode: "development", | |
| 11 | + plugins: [ | |
| 12 | + new CopyWebpackPlugin(['index.html']) | |
| 13 | + ], | |
| 14 | +}; | ... | ... |
Please
register
or
login
to post a comment