Skip to content

Migrating create-project to WinJS

This document serves only as a basic guide for migrating @winner-fed/create-project to WinJS. For real project migration, you may also need to read our documentation to learn more about plugins and configuration.

Actually, migrating a @winner-fed/create-project project to WinJS is relatively straightforward. The main thing to pay attention to is the differences in some default behaviors. Next, we'll migrate a @winner-fed/create-project initial project to WinJS through the following steps.

Dependency Management

Modify dependencies in package.json and update project startup commands. For more information about win CLI, check our documentation.

diff
{
  "scripts": {
-    "dev": "npm run serve",
+    "dev": "win dev",
-    "build": "node build/index.js --no-module",
+    "build": "win build",
  },
  "dependencies": {
+    "@winner-fed/winjs": "^0.5.1"
  },
+ "devDependencies": {
+    "@winner-fed/preset-vue": "^0.5.1",
+    "@winner-fed/plugins": "^0.5.1"
+ }
}

Modifying the Root Component

The entry point for @winner-fed/create-project is src/App.vue. In WinJS, there's no real exposed main application entry, but we can perform the same operations in layouts.

Transfer the logic from src/App.vue to src/layouts/index.vue. After completing the operation, your code should look like:

vue

<template>
  <div class="pages">
    <ul>
      <li>
        <router-link to="/">Home</router-link>
      </li>
      <li>
        <router-link to="/docs">Docs</router-link>
      </li>
    </ul>
    <keep-alive v-if="$route.meta.keepAlive">
      <router-view />
    </keep-alive>
    <router-view v-if="!$route.meta.keepAlive" />
  </div>
</template>

<style scoped lang="less">
.navs {
  ul {
    padding: 0;
    list-style: none;
    display: flex;
  }

  li {
    margin-right: 1em;
  }
}
</style>

Moving Page Files

Move page components to the src/pages directory.

HTML Template

Remove the public/index.html file.

WinJS has deprecated index.html. You can directly compose the final HTML through exposed related APIs. For details, refer to here.

Starting the Project

Execute win dev, and the project will start at http://localhost:8000/. If you're accustomed to using port 3000, you can set it through environment variables. Now the project should look consistent with the effect before migration.

Released under the MIT License.