← Back to list

The Complete Guide to Setting Up SPFx Development Environment for SharePoint Subscription Edition

A Step-by-Step Journey from Installation to Your First Web Part

Mai Omar Desouki · 2026-01-09 02:37 · 0 claps · 8.5 min read
#sharepoint #spfx #sharepoint-subscription #sharepoint-developmen #development
Open on Medium ↗

The Complete Guide to Setting Up SPFx Development Environment for SharePoint Subscription Edition

A Step-by-Step Journey from Installation to Your First Web Part

A comprehensive guide for SharePoint trainers and developers navigating the complexities of SPFx setup on SharePoint Subscription Edition On-Premises

Introduction

If you’ve ever tried setting up a SharePoint Framework (SPFx) development environment, you know it can feel like navigating a minefield of version mismatches, cryptic errors, and missing dependencies. After spending hours troubleshooting every possible issue, I’ve created this definitive guide to save you from the same headaches.

This guide is specifically for SharePoint Subscription Edition On-Premises environments, though many principles apply to SharePoint Online as well.

Understanding the Version Matrix (CRITICAL!)

Before we begin, understand this: SPFx version MUST match your SharePoint version. This is the source of 90% of setup problems.

SharePoint Version SPFx Version Node.js Version npm Version SharePoint 2019 1.11.0 10.x or 12.22.12 6.x SharePoint Subscription Edition 1.15.2 16.20.2 8.x SharePoint Online Latest (1.18.x+) 16.x or 18.x 8.x+

Wrong combination = cryptic errors like “primordials is not defined”

Prerequisites

Development Machine Requirements

  1. Windows 10/11 or Windows Server
  2. Administrator access for installations
  3. Internet connection for package downloads
  4. 4GB RAM minimum (8GB recommended)
  5. Visual Studio Code (recommended editor)

Server Requirements (SharePoint Subscription Edition)

  1. SharePoint Subscription Edition with build 16.0.14xxx or higher
  2. Administrator access to SharePoint server
  3. Subscription Settings Service Application (CRITICAL — more on this later!)
  4. App Catalog site collection

Phase 1: Installing Node.js (The Foundation)

Step 1: Download the Correct Version

For SharePoint Subscription Edition:

Critical: Do NOT use Node.js 18+ or 22+ — they’re too new for SPFx 1.15.2.

Step 2: Install Node.js

  1. Run the installer
  2. Accept default settings
  3. Verify installation:
node --version
# Should output: v16.20.2
npm --version
# Should output: 8.x or higher

Phase 2: Installing Python (The Hidden Requirement)

Here’s where it gets tricky. SPFx uses node-sass, which requires Python to compile C++ modules during installation.

The Problem

  • node-sass needs Python to build
  • Old versions of node-gyp expect Python 2
  • Your system probably has Python 3

The Solution: windows-build-tools

Install windows-build-tools which includes a compatible Python 2.7:

# Open Command Prompt as Administrator
npm install --global --production windows-build-tools

This takes 5–10 minutes and installs:

  • Python 2.7 (for node-gyp)
  • Visual C++ Build Tools
  • Proper configurations

After installation completes, configure npm to use the correct Python:

npm config set python "C:\Users\Administrator\.windows-build-tools\python27\python.exe"
npm config set msvs_version 2015

Verify Python Installation

"C:\Users\Administrator\.windows-build-tools\python27\python.exe" --version
# Should output: Python 2.7.15

Phase 3: Installing SPFx Tools

Step 1: Install Yeoman and Gulp

npm install -g yo gulp-cli

Step 2: Install SPFx Generator

For SharePoint Subscription Edition:

npm install -g @microsoft/generator-sharepoint@1.15.2

Verify installation:

npm list -g @microsoft/generator-sharepoint
# Should show: @microsoft/generator-sharepoint@1.15.2

Phase 4: Creating Your First SPFx Project

Step 1: Create Project Folder

cd C:\Users\[YourName]\Documents
mkdir SPFx-Projects
cd SPFx-Projects

Step 2: Generate Project

yo @microsoft/sharepoint

Step 3: Answer Prompts Correctly

CRITICAL: Select the correct target environment!

? What is your solution name?
→ HelloWorldWebPart
? Which type of client-side component to create?
→ WebPart
? What is your Web part name?
→ HelloWorld
? Which template would you like to use?
→ No framework (recommended for beginners)
? Do you want to allow tenant admin to deploy to all sites?
→ N (or Y, doesn't matter for development)
? Which baseline packages do you want to target?
→ SharePoint Online only (latest)  ← CRITICAL for SE!

DO NOT select “SharePoint 2019 onwards” if you have Subscription Edition!

Step 4: Wait for Installation

Installation takes 5–15 minutes depending on internet speed. You’ll see many deprecation warnings — this is normal. Ignore them.

npm WARN deprecated glob@7.2.3: Glob versions prior to v9 are no longer supported
npm WARN deprecated node-sass@4.14.1: Node Sass is no longer supported
...
(These are Microsoft's old dependencies - they still work fine!)

Phase 5: Configuring Your Development Environment

Step 1: Configure Workbench URL

Edit config/serve.json:

{
  "$schema": "https://developer.microsoft.com/json-schemas/spfx-build/spfx-serve.schema.json",
  "port": 4321,
  "https": true,
  "initialPage": "https://your-sharepoint-server/_layouts/15/workbench.aspx"
}

Replace your-sharepoint-server with your actual SharePoint URL!

Step 2: Trust Development Certificate

gulp trust-dev-cert

This allows your browser to trust the self-signed certificate used by the local development server.

Phase 6: Running Your First Web Part

Step 1: Start Development Server

gulp serve --nobrowser

You should see:

Build target: DEBUG
[15:05:12] Starting 'serve'...
Server started https://localhost:4321
LiveReload started on port 35729
Running server

Keep this terminal window open!

Step 2: Open SharePoint Workbench

Open your browser and navigate to:

https://your-sharepoint-server/_layouts/15/workbench.aspx

Step 3: Handle Certificate Warning

Your browser will show a security warning about localhost:4321:

Chrome/Edge:

  1. Click “Advanced”
  2. Click “Proceed to localhost (unsafe)”

Firefox:

  1. Click “Advanced”
  2. Click “Accept the Risk and Continue”

Step 4: Add Your Web Part

  1. Click the ➕ icon (Add a web part)
  2. Search for your web part name
  3. Click to add it to the page
  4. Success! Your web part appears!

Common Issues and Solutions

Issue 1: “primordials is not defined”

Error:

ReferenceError: primordials is not defined
    at fs.js:42:5

Cause: Wrong Node.js version for your SPFx version.

Solution:

  • SharePoint 2019? Use Node.js 12.x + SPFx 1.11.0
  • SharePoint SE? Use Node.js 16.x + SPFx 1.15.2

Issue 2: Python Errors During npm install

Error:

gyp ERR! stack Error: Can't find Python executable "python"

Solution:

npm install --global --production windows-build-tools
npm config set python "C:\Users\Administrator\.windows-build-tools\python27\python.exe"

Issue 3: “Port 4321 already in use”

Solution:

# Find process using port 4321
netstat -ano | findstr :4321
# Kill the process (replace [PID] with actual number)
taskkill /PID [PID] /F

Issue 4: Web Part Not Loading in Workbench

Error:

[SPLoaderError.loadComponentError]: Failed to load component
Manifest not found for component id "73e1dc6c-8441-42cc-ad47-4bd3659f8a3a"

This is the BIG ONE! Continue reading…

The Critical Missing Piece: Subscription Settings Service Application

If your web part works in the local workbench (https://localhost:4321/temp/workbench.html) but fails in the SharePoint workbench, you're missing the Subscription Settings Service Application.

Why This Matters

The Subscription Settings Service Application is NEW in SharePoint Subscription Edition and is absolutely required for SPFx to work. Without it:

  • ❌ SPFx web parts can’t load
  • ❌ Component manifests aren’t stored
  • ❌ You get “Manifest not found” errors

This service application does NOT exist in SharePoint 2019 — it’s specific to Subscription Edition.

Creating the Service Application

On your SharePoint server, run PowerShell as Administrator:

Add-PSSnapin Microsoft.SharePoint.PowerShell
# Create Subscription Settings Service Application
$serviceApp = New-SPSubscriptionSettingsServiceApplication `
    -ApplicationPool "SharePoint Web Services Default" `
    -Name "Subscription Settings Service Application" `
    -DatabaseName "SharePoint_SubscriptionSettings"
# Create Service Application Proxy
$serviceAppProxy = New-SPSubscriptionSettingsServiceApplicationProxy `
    -ServiceApplication $serviceApp `
    -Name "Subscription Settings Service Application Proxy"
Write-Host "Service Application created successfully!" -ForegroundColor Green

Start the Service

# Start the Subscription Settings Service
$service = Get-SPServiceInstance | Where-Object {$_.TypeName -like "*Subscription Settings*"}
Start-SPServiceInstance -Identity $service
# Verify it's running
Get-SPServiceInstance | Where-Object {$_.TypeName -like "*Subscription Settings*"} | Select TypeName, Status

Status should show: “Online”

Verify Creation

# Check service application
Get-SPServiceApplication | Where-Object {$_.TypeName -like "*Subscription*"}
# Check proxy
Get-SPServiceApplicationProxy | Where-Object {$_.TypeName -like "*Subscription*"}

After creating this service application, SPFx web parts will work!

Complete Server Setup Script

Here’s a comprehensive script that sets up everything on your SharePoint server:

Add-PSSnapin Microsoft.SharePoint.PowerShell
Write-Host "`n=== SharePoint Subscription Edition SPFx Setup ===" -ForegroundColor Cyan
# 1. Check SharePoint version
Write-Host "`nChecking SharePoint version..." -ForegroundColor Yellow
$version = (Get-SPFarm).BuildVersion
Write-Host "SharePoint Build: $version" -ForegroundColor Green
if ($version.Build -lt 14000) {
    Write-Host "ERROR: This is SharePoint 2019 or older. Use SPFx 1.11.0 instead." -ForegroundColor Red
    exit
}
# 2. Create Subscription Settings Service Application
Write-Host "`nCreating Subscription Settings Service Application..." -ForegroundColor Yellow
$existing = Get-SPServiceApplication | Where-Object {$_.TypeName -like "*Subscription*"}
if ($existing) {
    Write-Host "Already exists!" -ForegroundColor Green
} else {
    $serviceApp = New-SPSubscriptionSettingsServiceApplication `
        -ApplicationPool "SharePoint Web Services Default" `
        -Name "Subscription Settings Service Application" `
        -DatabaseName "SharePoint_SubscriptionSettings"

    $serviceAppProxy = New-SPSubscriptionSettingsServiceApplicationProxy `
        -ServiceApplication $serviceApp `
        -Name "Subscription Settings Service Application Proxy"

    Write-Host "Created successfully!" -ForegroundColor Green
}
# 3. Start the service
Write-Host "`nStarting service..." -ForegroundColor Yellow
$service = Get-SPServiceInstance | Where-Object {$_.TypeName -like "*Subscription Settings*"}
if ($service.Status -ne "Online") {
    Start-SPServiceInstance -Identity $service

    # Wait for service to come online
    $timeout = 120
    $elapsed = 0
    while ($service.Status -ne "Online" -and $elapsed -lt $timeout) {
        Start-Sleep -Seconds 5
        $elapsed += 5
        $service = Get-SPServiceInstance -Identity $service.Id
        Write-Host "  Status: $($service.Status) ($elapsed seconds)" -ForegroundColor Gray
    }

    if ($service.Status -eq "Online") {
        Write-Host "Service is Online!" -ForegroundColor Green
    } else {
        Write-Host "Service did not start. Check ULS logs." -ForegroundColor Red
    }
} else {
    Write-Host "Service is already Online!" -ForegroundColor Green
}
# 4. Check/Create App Catalog
Write-Host "`nChecking App Catalog..." -ForegroundColor Yellow
$webApp = Get-SPWebApplication | Select -First 1
$appCatalog = Get-SPSite | Where-Object {$_.RootWeb.WebTemplate -eq "APPCATALOG"}
if (!$appCatalog) {
    Write-Host "Creating App Catalog..." -ForegroundColor Yellow
    $url = $webApp.Url + "/sites/appcatalog"
    New-SPSite -Url $url `
               -OwnerAlias ($webApp.ApplicationPool.Username) `
               -Name "App Catalog" `
               -Template "APPCATALOG#0"
    Write-Host "App Catalog created at: $url" -ForegroundColor Green
} else {
    Write-Host "App Catalog exists at: $($appCatalog.Url)" -ForegroundColor Green
}
Write-Host "`n=== Setup Complete! ===" -ForegroundColor Cyan
Write-Host "Your SharePoint server is now ready for SPFx development." -ForegroundColor Green

Development Workflow

Once everything is set up, your daily development workflow is simple:

1. Start Development Server

cd C:\Users\[YourName]\Documents\SPFx-Projects\HelloWorldWebPart
gulp serve --nobrowser

2. Open Workbench

Navigate to: [https://your-sharepoint-server/_layouts/15/workbench.aspx](https://your-sharepoint-server/_layouts/15/workbench.aspx)

3. Make Changes

Edit your code in VS Code:

  • Changes auto-compile
  • Browser auto-refreshes
  • See changes immediately!

4. Stop Development

Press Ctrl+C in the terminal to stop the server.

Best Practices for Training Materials

If you’re creating training content for SPFx development:

1. Always Verify Versions First

Create a “prerequisites check” script:

@echo off
echo === SPFx Environment Check ===
echo.
echo Node.js version:
node --version
echo.
echo npm version:
npm --version
echo.
echo SPFx Generator version:
npm list -g @microsoft/generator-sharepoint
echo.
echo Python version:
"%USERPROFILE%\.windows-build-tools\python27\python.exe" --version
echo.
pause

2. Set Expectations on Installation Time

Warn students that:

  • First npm install takes 10-15 minutes
  • They’ll see many deprecation warnings (normal!)
  • Don’t close the terminal during installation

3. Provide Server Setup Documentation

Give IT admins a clear checklist:

  • ✅ SharePoint Subscription Edition installed
  • ✅ Latest Cumulative Update applied
  • ✅ Subscription Settings Service Application created
  • ✅ App Catalog site collection created
  • ✅ Proper service accounts configured

4. Create Troubleshooting Flowcharts

“My web part won’t load” decision tree:

  1. Does gulp serve complete without errors? → No → Fix build errors
  2. Does local workbench work (localhost:4321/temp/workbench.html)? → No → Check Node.js version
  3. Does SharePoint workbench load? → No → Check Subscription Settings Service Application
  4. Can you add the web part? → No → Check browser console (F12)

Advanced: Using Node Version Manager (NVM)

If you need to work with multiple SharePoint versions:

Install NVM for Windows

  1. Download from: https://github.com/coreybutler/nvm-windows/releases
  2. Install nvm-setup.exe

Switch Between Node Versions

# Install both versions
nvm install 12.22.12
nvm install 16.20.2
# For SharePoint 2019 projects
nvm use 12.22.12
npm install -g @microsoft/generator-sharepoint@1.11.0
# For SharePoint SE projects
nvm use 16.20.2
npm install -g @microsoft/generator-sharepoint@1.15.2
# Check current version
nvm current

Conclusion

Setting up SPFx development for SharePoint Subscription Edition involves many moving parts:

  1. Correct Node.js version (16.20.2)
  2. Python 2.7 (via windows-build-tools)
  3. SPFx Generator 1.15.2
  4. Subscription Settings Service Application (on server)
  5. App Catalog (on server)
  6. Proper npm configuration

Miss any one of these, and you’ll spend hours troubleshooting cryptic errors.

The good news? Once you have this setup working, it’s incredibly powerful. You can create modern, responsive web parts that work seamlessly across devices and provide an excellent user experience.

Quick Reference Cheat Sheet

Development Machine Setup

# 1. Install Node.js 16.20.2
# Download from: https://nodejs.org/dist/v16.20.2/
# 2. Install windows-build-tools
npm install --global --production windows-build-tools
# 3. Configure npm
npm config set python "C:\Users\Administrator\.windows-build-tools\python27\python.exe"
npm config set msvs_version 2015
# 4. Install SPFx tools
npm install -g yo gulp-cli @microsoft/generator-sharepoint@1.15.2
# 5. Create project
yo @microsoft/sharepoint
# 6. Start development
gulp serve --nobrowser

SharePoint Server Setup

# 1. Create Subscription Settings Service Application
New-SPSubscriptionSettingsServiceApplication -ApplicationPool "SharePoint Web Services Default" -Name "Subscription Settings" -DatabaseName "SP_SubscriptionSettings"
New-SPSubscriptionSettingsServiceApplicationProxy -ServiceApplication $serviceApp
# 2. Start the service
Start-SPServiceInstance -Identity (Get-SPServiceInstance | Where-Object {$_.TypeName -like "*Subscription Settings*"})
# 3. Create App Catalog (if needed)
New-SPSite -Url "http://server/sites/appcatalog" -Template "APPCATALOG#0"

Common Commands

# Check versions
node --version
npm --version
npm list -g @microsoft/generator-sharepoint
# Create project
yo @microsoft/sharepoint
# Start server
gulp serve --nobrowser
# Build for production
gulp bundle --ship
gulp package-solution --ship
# Clean and rebuild
gulp clean
npm install

Resources

Questions? Issues? Drop a comment below!

If this guide helped you, please give it a clap 👏 and share it with other SharePoint developers who might be struggling with SPFx setup.

Happy coding! 🚀


메타데이터
post_id
92f7cdc8826b
slug
the-complete-guide-to-setting-up-spfx-development-environment-for-sharepoint-subscription-edition-92f7cdc8826b
url
https://medium.com/@maiomardesouki/the-complete-guide-to-setting-up-spfx-development-environment-for-sharepoint-subscription-edition-92f7cdc8826b
canonical_url
https://medium.com/@maiomardesouki/the-complete-guide-to-setting-up-spfx-development-environment-for-sharepoint-subscription-edition-92f7cdc8826b
author_url
https://medium.com/@maiomardesouki
status
ok
fetched_at
2026-06-22 05:41:33