fork of https://github.com/rustwasm/wasm-pack for the needs of NextGraph.org
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
ashley williams beaf912f2f
Merge pull request #54 from ashleygwilliams/readme-tests
7 years ago
examples/js-hello-world fix: adding wasm-bindgen version rather than git repo 7 years ago
src fix(progressbar): refactor msg into pb fn 7 years ago
tests feat(test): test readme is a copy 7 years ago
.appveyor.yml feat(test): add appveyor 7 years ago
.gitignore feat(ignore): ignore example pkg dirs 7 years ago
.travis.yml feat(test): we only work on nightly now 7 years ago
CODE_OF_CONDUCT.md add Code of Conduct 7 years ago
CONTRIBUTING.md feat(doc): add contributing.md 7 years ago
Cargo.lock fix(style): improve output messaging 7 years ago
Cargo.toml fix(style): improve output messaging 7 years ago
LICENSE-APACHE feat(doc): add licenses 7 years ago
LICENSE-MIT feat(doc): add licenses 7 years ago
README.md fix(doc): update readme code example 7 years ago

README.md

📦 wasm-pack

pack up the wasm and publish it to npm!

Build Status Build status

the goal of this project is to create a portable command line tool for publishing compiled wasm projects to the npm registry for the consumption of js devs using the npm CLI, yarn, or any other CLI tool that interfaces with the npm registry.

this project is a part of the rust-wasm group. you can find more info by visiting that repo!

🔮 prerequisities

this project is written in rust. get rust to work on this project.

🏃 up and running

  1. fork and clone this repository
  2. cd wasm-pack
  3. cargo run

💃 commands

  • help: display available commands
  • 🐣 init: create necessary files for js interop and npm publishing
    • optionally pass a path to a dir that contains a Cargo.toml, e.g.: wasm-pack init examples/js-hello-world
  • 🍱 pack: create a tarball but don't push to the npm registry [NOT IMPLEMENTED]
  • 🎆 publish: create a tarball and publish to the npm registry [NOT IMPLEMENTED]

how to use

  1. write a crate in Rust.
  2. add wasm-bindgen to your Cargo.toml:
  [lib]
  crate-type = ["cdylib"]

  [dependencies]
  wasm-bindgen = { git = 'https://github.com/alexcrichton/wasm-bindgen' }
  1. add this to the top of your src/lib.rs:
  #![feature(proc_macro)]

  extern crate wasm_bindgen;

  use wasm_bindgen::prelude::*;
  1. annotate your public functions with #[wasm_bindgen], for example:
#[wasm_bindgen]
extern {
    fn alert(s: &str);
}

#[wasm_bindgen]
pub fn greet(name: &str) {
    alert(&format!("Hello, {}!", name));
}
  1. install this tool: cargo install wasm-pack
  2. run wasm-pack init, optionally, pass a path to a dir that contains your Cargo.toml
  3. this tool generates files in a pkg dir. to publish to npm, cd pkg and then npm publish (in the future you'll be able to use this tool to publish)