Skip to content
SharePoint web development tools for Visual Studio Code
TypeScript JavaScript
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Pre-drop before VSCode Marketplace submission Aug 15, 2017
docs 1.4.3 Jul 9, 2019
src 1.4.3 Jul 9, 2019
test handle url encoded strings, better logging output, fixed first-load e… Feb 15, 2019
.gitignore 1.4.1 Jul 3, 2019
CHANGELOG.md 1.4.3 Jul 9, 2019
CODE_OF_CONDUCT.md migrated to personal Github May 15, 2019
LICENSE
README.md 1.4.3 Jul 9, 2019
ThirdPartyNotices.txt migrated to personal Github May 15, 2019
package-lock.json Bump lodash from 4.17.11 to 4.17.14 Jul 11, 2019
package.json 1.4.3 Jul 9, 2019
tsconfig.json Skip lib check Jul 2, 2019
webpack.config.js 1.4.1 Jul 3, 2019

README.md

SPGo for Visual Studio Code

SPGo allows you and your team to develop SharePoint web solutions from your local PC using the power of Visual Studio Code. Now you can build SharePoint sites and customizations source-control first with all of the power of a top-tier IDE. Produce cleaner code, deliver faster.

  • Publish files on save
  • Use VSCode compare tools to diff local changes against the server
  • Pull down remote folders to your local workspace
  • No more editors messing with your markup
  • Support for: Windows, OSX, and Unix
  • Keep all project configuration in Source Control for easy team integration

Learn More

You can view additional documentation on our documentation site.

Feedback

We love feedback! Please take a minute to complete our 2-question Survey and help make SPGo better!

Features

All of the great code authoring and management features of Visual Studio Code, plus the ability to...

  • Check out files from SharePoint
    • Check out current file using command >SPGo: Check Out the current file
    • Check out current file with the hotkey combo: Alt+Shift+C
  • Publish files to SharePoint
    • Save|publish|check-in automatically on Save
    • Force publish using command >SPGo: Publish the current file
    • Publish a major version with the hotkey combo: Alt+Shift+p
    • Publish a minor version with the hotkey combo: Alt+p
    • Discard checkout using command SPGo: Discard check out
    • Specify an optional publishing message
  • Retrieve the contents of a specified folder from SharePoint
    • Download individual folders using the command >SPGo: Retrieve folder
    • Optionally provide glob patterns to download only specific files
  • Retrieve the contents of multiple folders from SharePoint (Synchronize)
    • Specify a glob pattern array of site-relative folders in the remoteFolders configuration node (See Additional Configuration Options below)
    • Download all subfolders automatically by using command >SPGo: Populate workspace
  • Glob Support
    • All bulk download and upload functionality supports Glob formatting
    • note: individual file wildcard support for bulk downloads is still in progress. >SPGo: Publish local workspace supports all Glob patterns
  • Manage multiple configurations
    • Configuration data is stored within the project directory and can be stored in source control
  • Global Access
    • Support for Germany, China, and the US Government's private Office 365 deployments
  • Support for SharePoint Online and 2016 + 2013 on-premise

Configuration and Getting Started

To get started using SPGo, press Ctrl+Shift+p (Windows) Cmd+Shift+p (Mac) or open the Command Pallet and type >SPGo: Configure Workspace to bring up the SPGo Configuration Wizard. Upon successful configuration, a new file will be created in the root of your project folder called spgo.json. From there, all files and folders created under the src folder in your local workspace will be deployed to their corresponding site-relative path your SharePoint site upon save.

SPGo.json Configuration Files

If configuration was successful, you should see a file similar to below:

{
    "sourceDirectory": "src",
    "sharePointSiteUrl": "https://tenant.sharepoint.com/sites/MyProject",
    "publishingScope": "SaveOnly",
}

Additional Configuration Options

Glob support for Publishing Workspace

Entering a Glob pattern into a node called publishWorkspaceGlobPattern will cause SPGo to publish only files which match this glob pattern. For example, if you use another VSCode plugin to minify files on save, you can configure the >SPGo: Publish local workspace command to publish all minified files in the workspace with the format <file>.min.<ext> by setting the publishWorkspaceGlobPattern property to /**/*.min.*.

Populating Remote Files

When you specify an array of remote folders in a node called remoteFolders, SPGo will recursively download the remote folder contents to your local workspace when you issue the Synchronize Files command >SPGo: Populate Workspace. Note: This WILL overwrite all local files.

Example Config json

{
    "checkInMessage" : "Your custom Check-in message here",
    "sourceDirectory": "src",
    "sharePointSiteUrl": "https://tenant.sharepoint.com/sites/MyProject",
    "publishingScope": "SaveOnly",
    "publishWorkspaceGlobPattern": "/**/*.min.*",
    "remoteFolders": [
        "/SiteAssets/**/*.*",
        "/_catalogs/wp/",
        "/_catalogs/masterpage/"
    ]
}

Use

SPGo will automatically launch when you run the Configure Workspace command >SPGo: Configure workspace or any time the SPGO Configuration file spgo.json is detected in the root of the current workspace.

Security and Authentication Support

Credentials are stored in VSCode memory only. SPGo will only ask you for credentials the first time you sync with SharePoint each session. SPGo currently supports the following authentication modes:

  • Digest (Office365)

  • NTLM v1 (most on-premise installations)

  • NTLM v1 + wwwAuth

  • NTLM v2

  • ADFS

    A note for ADFS Authentication: You will need to add the following JSON node to the root of your your SPGo.json file:

    "authenticationDetails": {
        "relyingParty": "[relying party]",
        "adfsUrl": "[ADFS Url]"
    }

How to get in touch

Write an email, create an issue on git, @ us on twitter or request support via Stack Overflow. Any way you choose, we embrace feedback and want to hear from you. Here's how to get a hold of us:

Issues

Please submit any issues or feature requests to https://github.com/chrishasz/SPGo/issues or, better yet, author a pull request.

Open Source

This project is offered under the MIT open source license. Collaboration, contribution, and feedback is welcomed and encouraged!

Thank You

I want to thank the following developers for inspiration and source packages:

You can’t perform that action at this time.