Very simple seed project for developing VSTS extensions using Typescript. Utilizes Typescript, grunt, and tsd. Detailed explanation how to get started can be found at https://cschleiden.wordpress.com/2016/02/24/extending-vsts-setup/.
** For new projects I'd recommend starting with one of my more modern extensions like https://github.com/cschleiden/vsts-quick-decompose **
/scripts - Typescript code for extension
/img - Image assets for extension and description
/typings - Typescript typings
details.md - Description to be shown in marketplace
index.html - Main entry point
vss-extension.json - Extension manifest
0.8.0 - Update dependencies
0.7.0 - Updated VSS SDK, moved from `typings` to `@types`
0.6.0 - Updated VSS SDK to M104
0.1.1 - Automatically increase extension's minor version when packaging.
- Clone the repository
npm install
to install required local dependenciesnpm install -g grunt
to install a global copy of grunt (unless it's already installed)grunt
to build and package the application
Three basic grunt
tasks are defined:
build
- Compiles TS files inscripts
folderpackage-dev
- Builds the development version of the vsix packagepackage-release
- Builds the release version of the vsix packagepublish-dev
- Publishes the development version of the extension to the marketplace usingtfx-cli
publish-release
- Publishes the release version of the extension to the marketplace usingtfx-cli
Note: To avoid tfx
prompting for your token when publishing, login in beforehand using tfx login
and the service uri of https://marketplace.visualstudio.com
.
The VSTS framework is setup to initalize the requirejs AMD loader, so just use import Foo = require("foo")
to include framework modules.
The included .vscode
config allows you to open and build the project using VS Code.
The project is setup for unit testing using mocha
, chai
, and the karma
test runner. A simple example unit test is included in scripts/logic/messageHelper.tests.ts
. To run tests just execute:
grunt test