WVUI is now built as a standard, universally usable NPM package. This task is to start using it in Vector for Vue.js search.
The Vue.js runtime can be built in directly until available as a runtime module in Core. The initial integration can use a WVUI development pre-release (npm i -D @wikimedia/wvui@next).
Acceptance criteria
- The patch is merged to the feat/search branch.
- WVUI JavaScript is consumable.
- WVUI CSS is consumable.
- The new client search experience is distinct from the old. It should be possible to choose between them once a configuration is available. This patch should leave the Legacy experience intact but provide any ResourceLoader modules needed for the new experience.
- An NVM configuration is added that matches MobileFrontend (yes, it's a one line file).
- A new Vue instance is created that mounts a component (any component).
- Linters and TypeScript configuration are updated as needed. Spawn new tasks if necessary.
- Test the npm link-based workflow and update the documentation as needed.
- The wiki is updated to describe the steps needed to integrate a pre-compilation build of WVUI. It should include at least a checklist of what's needed that could be followed by another skin or extension such as NearbyPages. --Please see build step and Webpack wiki pages. These can use further revision but are a decent start for the scope of this task.
Developer notes
- Use Popups and MobileFrontend as a reference implementation.
- Avoid too much scope creep and open new tasks as needed. Client hydration is tracked in T260065.
- Extremely hacky example patch.