Install & build

From clone to load-unpacked and packages

Requirements

This product build targets Chrome only for distribution (not Firefox/Edge store packages).

Clone & compile

git clone https://github.com/JamalYusuf/vim-plus.git
cd vim-plus
npm ci
npm run tsc

npm run tsc typechecks and emits JavaScript next to TypeScript sources for background/, content/, pages/, and front/.

Load unpacked

  1. chrome://extensionsDeveloper mode
  2. Load unpacked → repository root (manifest.json present)
  3. Pin the action icon
  4. Set Open side panel under shortcuts

After source edits: npm run tsc → click Reload on the extension card.

Chrome Web Store package

npm run package

Produces build/extension/ (load unpacked) and build/vim-plus-<version>-chrome.zip for the store. Do not zip the whole repositorymanifest.json must be at the zip root.

npm scripts

CommandPurpose
npm run tscTypecheck / emit JS
npm run package / npm run storeChrome Web Store zip + build/extension/
npm run watch / npm run devIncremental TypeScript watch
npm run local / npm startLocal gulp pipeline
npm run buildGulp build
npm run chrome / npm run distLegacy production package
npm run lintESLint
npm testGulp test target

Project layout

background/     Service worker: settings, completion, commands, quick_actions, side panel
content/        Page scripts: keys, hints, scroll, find, visual, page_enhance
front/          Vomnibar UI + help dialog assets
pages/          Options, wiki, sidepanel, action popup, theme
lib/            Shared utilities, Readability bundle
docs/           Markdown docs (GitHub / store)
site/           Hugo documentation website (this site’s source)
i18n/           Localized strings
icons/          Extension icons
manifest.json   MV3 manifest

Troubleshooting build

IssueFix
Missing .js next to .tsRun npm run tsc
Service worker errorsCheck background/worker.js module graph; reload extension
Options blank / CSPNo inline scripts; ensure theme-boot.js and page scripts load
Side panel emptyConfirm side_panel permission and pages/sidepanel.html

Documentation site (Hugo)

# requires Hugo extended
hugo server -s site
hugo -s site   # writes site/public

GitHub Pages deploys from site/ via Actions (see .github/workflows/pages.yml).