Learning roadmap - SharePoint/PnP-JS-Core GitHub Wiki

This project uses a lot of different kinds of technologies. In order to make getting started easier we provide a learning roadmap which covers the major technological building blocks of the solution.

Gulp

Gulp is a streaming build server which we use for doing tasks like:

  • Compiling typescript, minifying the compiled gulpjs
  • Linting - i.e. checking code for stylistic errors
  • Build the typings definitions
  • Building the project as a whole
  • Test runner for our mocha tests
  • Starting a HTTP server to host a copy of the project on your dev machine

You can think of Gulp as doing the same job as msbuild or make, except that the commands are written using JavaScript.

Brief introduction: http://gulpjs.com/

Deeper dive: 5 hour pluralsight course from John Papa

Node-js

Let's us run JavaScript server-side. A lot of the tools we use depend on Node. It has a sophisticated package management tool called npm (node package manager).

We use node for tasks like:

  • Running our automated test suite
  • Hosting a local instance of the project for development and debugging
  • Gulp is installed as a node package

Brief introduction: Collection of resources

Deeper dive: TBD

TypeScript

A typed superset of JavaScript that compiles to plain JavaScript. It introduces strong typing, classes and interfaces as well as modules, and allows us to use features of the next version of JavaScript.

The reason the project is built on TypeScript instead of vanilla JavaScript is ???

Brief introduction: The excellent Handbook at the TS docs. Go through them all.

Deeper dive: TBD

Typings

Typings is the simple way to manage and install TypeScript definitions. It's like NuGet/npm for your TypeScript definitions

Brief introduction: Github

Deeper dive: TBD

Bower

Package manager for front-end dependencies. It's not in use now, but the PnP package will be available from Bower at release. By using bower we can easily update and manage the packages the solution is built on.

Brief introduction: Bower web

Deeper dive: TBD

Mocha and Chai

JavaScript test framework running on Node.js and the browser.

Brief introduction: The mocha website

Deeper dive: TBD

Git

A distributed version control system

Brief introduction: Interactive learning

Deeper dive: The git book (free)

Editors

Development of PnP-JS-Core does not require Visual Studio. Any text editor can be used. Of course Visual Studio and VS Code has great built in support for TypeScript giving youthings like:

  • Intellisense
  • Integration with TSLint