Skip to content

Latest commit

 

History

History
72 lines (51 loc) · 2.78 KB

init.md

File metadata and controls

72 lines (51 loc) · 2.78 KB

wasm-pack init

The wasm-pack init command creates the files neccessary for JavaScript interoperability and for publishing a package to npm. This involves compiling your code to wasm and generating a pkg folder. This pkg folder will contain the wasm binary, a JS wrapper file, your README, and a package.json file.

Path

The wasm-pack init command can be given an optional path argument, e.g.:

wasm-pack init examples/js-hello-world

This path should point to a directory that contains a Cargo.toml file. If no path is given, the init command will run in the current directory.

Target

The init command accepts a --target argument. This will customize the output files to align with a particular type of JS module. This allows wasm-pack to generate either ES6 modules or CommonJS modules for use in browser and in NodeJS. Defaults to browser. The options are:

wasm-pack init --target nodejs
Option Description
nodejs Outputs JS that uses CommonJS modules, for use with a require statement.
browser Outputs JS that uses ES6 modules, primarily for use with import statements and/or bundlers such as webpack.

Scope

The init command also accepts an optional --scope argument. This will scope your package name, which is useful if your package name might conflict with something in the public registry. For example:

wasm-pack init examples/js-hello-world --scope test

This command would create a package.json file for a package called @test/js-hello-world. For more information about scoping, you can refer to the npm documentation here.

Debug

The init command accepts an optional --debug argument. This will build the output package using cargo's default non-release profile. Building this way is faster but applies few optimizations to the output, and enables debug assertions and other runtime correctness checks.

The exact meaning of this flag may evolve as the platform matures.

Skipping build

The init command accepts an optional --skip-build argument.

This will deactivate those steps:

  • installing wasm target (via cargo)
  • compiling the code to wasm
  • installing wasm-bindgen (via rustup)
  • running wasm-bindgen on the built wasm

Basically it will remains only the steps that update the metadata of package.json.