1
0
mirror of https://github.com/golang/go synced 2024-11-18 14:44:41 -07:00
go/cmd/heapview/client/README.md
Michael Matloob 053ddb97bf x/tools/cmd/heapview: add basic client serving
This change primarily exists to import Typescript and the
ES6 module loader polyfill as dependencies for this project.
Both dependencies are relatively lightweight and can be easily
removed if we decide we don't need them.

The module loader polyfill implements support for an upcoming
browser feature in ES6 (the next version of JavaScript). This
feature helps modularize Javascript code and conveniently split it
into multiple files. It should be supported by the stable versions
of the four major browsers (Chrome, Firefox, Safari and Edge)
by the end of the year. Once that happens, we can remove the polyfill.

The Typescript compiler provides two things: First, it compiles
new, but not-yet-supported ES6 Javascript features into ES5. It
also provides a typechecker similar to what Closure does, but types
are indicated in syntax rather than JSDoc comments. If we decide
we don't want this dependency, we can compile the Typescript code
into human-readable JavaScript code. (The compiler basically
strips out types and replaces ES6 language features with more
well-supported JavaScript equivalents). The Typescript compiler
is not required for development. typescript.js and a feature in
the module loader will be used to compile Typescript into JavaScript
at serving time. (We might want to do something different for the
production version, but we can get to that later).

The change also adds code to serve the HTML and Javascript files.

Updates golang/go#16410

Change-Id: I42c669d1de636d8b221fc03ed22aa7ac60554610
Reviewed-on: https://go-review.googlesource.com/25240
Reviewed-by: Austin Clements <austin@google.com>
2016-07-26 20:51:39 +00:00

1.3 KiB

Go Heap Viewer Client

This directory contains the client Typescript code for the Go heap viewer.

Typescript Tooling

Below are instructions for downloading tooling and files to help make the development process more convenient. These tools are not required for contributing or running the heap viewer- they are just meant as development aids.

Node and NPM

We use npm to manage the dependencies for these tools. There are a couple of ways of installing npm on your system, but we recommend using nvm.

Run the following command to install nvm:

[shell]$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.3/install.sh | bash

or see the instructions on the nvm github page for alternative methods. This will put the nvm tool in your home directory and edit your path to add nvm, node and other tools you install using them. Once nvm is installed, use

[shell]$ nvm install node

then

[shell]$ nvm use node

to install node.js.

Once node is installed, you can install typescript using

[shell]$ npm install -g typescript

Finally, import type definitions into this project by running

[shell]$ npm install

in this directory. They will be imported into the node_packages directory and be automatically available to the Typescript compiler.