Note: This project now uses GitHub Actions for automated publishing. See DEPLOYMENT.md for automated deployment setup. The manual steps below are still valid if you prefer to publish manually.
-
package.json- Complete with all required fields -
README.md- Comprehensive documentation -
CHANGELOG.md- Version history -
LICENSE- MIT License -
icon.png- 128x128px inimages/folder -
.vscodeignore- Excludes unnecessary files
-
name- Unique identifier -
displayName- Human-readable name -
description- Clear description -
version- Semantic version (1.0.0) -
publisher- Publisher ID (alckordev) -
engines.vscode- Minimum VS Code version -
icon- Path to icon file -
repository- GitHub repository URL -
bugs- Issues URL -
homepage- Homepage URL -
categories- Extension category -
keywords- Search keywords -
main- Entry point (./out/extension.js)
- TypeScript compiles without errors
- ESLint passes without errors
- All imports resolve correctly
- Extension activates correctly
- All commands work as expected
- Extension loads in Extension Development Host
- Scripts display correctly in sidebar
- Script execution works
- Package manager detection works
- Multi-workspace support works
- File watcher updates correctly
npm install -g @vscode/vsce- Go to https://marketplace.visualstudio.com/manage
- Sign in with Microsoft account
- Create new publisher with ID:
alckordev - Verify publisher ID matches
package.json
- Go to Azure DevOps → User Settings → Personal Access Tokens
- Create new token with scope: Marketplace (Manage)
- Save the token securely
vsce login alckordev
# Enter your PAT when prompted# From project root
vsce packageThis creates quick-scripts-runner-1.0.0.vsix
code --install-extension quick-scripts-runner-1.0.0.vsixvsce publishOr publish with version increment:
vsce publish minor # 1.0.0 -> 1.1.0
vsce publish patch # 1.0.0 -> 1.0.1- Publisher ID: Must match exactly in
package.jsonand Azure DevOps - Version: Must follow semantic versioning (major.minor.patch)
- Repository: Must be publicly accessible
- Icon: Must be exactly 128x128px PNG
- CHANGELOG: Should have real dates (not placeholders)
Run these commands to verify everything:
# Compile
pnpm run compile
# Lint
pnpm run lint
# Package (dry run)
vsce package --no-yarn
# Check package contents
vsce ls- Verify extension appears in Marketplace
- Test installation from Marketplace
- Monitor reviews and issues
- Update CHANGELOG.md for future releases
- Update version in package.json for next release