CLI tool
Neveryu/vue-cms avatar
Neveryu/vue-cms

vue-cms is a Vue 2 admin template with dynamic routes, mock data and exports

基于 Vue 和 ElementUI 构建的一个企业级后台管理系统

649 stars233 forksVueLicense varies

At a glance

What is it?
Neveryu vue-cms is an enterprise style back office template built on Vue 2.7.16 and Element UI, with internationalisation, nested dynamic routing, permission checks, theme switching, ECharts dashboards, mock data and spreadsheet import and export. It is a reference front end rather than a finished content management system, and it targets a Vue generation that has ended.
Who is it for?
vue-cms suits a team that wants a front end skeleton for an internal back office and is happy to own the pieces, since the routing, permission, internationalisation and export patterns are all in the repository and documented by example. It is a poor choice for a new product, because the whole stack is Vue 2 with Element UI, and the newest release is named to mark the last Vue 2.7 build, which is an end of life generation you would be signing up to maintain.
Can I use it commercially?
Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
Is it still maintained?
Yes. The repository last received commits 156 days ago.
What is it written in?
Mainly Vue, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

An admin template, not a content management system

The repository description calls vue-cms an enterprise level back office management system built with Vue and Element UI, and the README frames it in a way that is worth reading carefully. It presents the project as built on Vue with Element UI, using a modern front end stack, with an i18n internationalisation solution and support for multiple languages, nested routing, dynamic routing and permission validation. Alongside that it provides the page modules an internal tool usually needs, namely a dashboard with data charts, a personal centre, theme skin switching, form and table pages, and statistics views. What it also says is that this is a good learning project, containing solutions to common problems such as data visualisation, import and export, custom components, custom directives and rich text, along with technical experiments such as secondary wrapping of Element UI and the use of decorators. That framing is the honest one. The value is in the assembly of front end patterns, and the CMS in the name refers to a content management style interface rather than to a back end with content models.

The feature list is long and specific

The README enumerates what the template ships with, and the list is a fair summary of what an admin front end needs. There is login and logout, permission validation, multi environment publishing, a dynamic sidebar that supports multi level routes, better-scroll for scrolling containers, internationalisation across multiple languages, a fullscreen toggle, list reordering by drag, SVG sprite icons, a dashboard, local mock data, ECharts graphs, Excel export, zip export, a visual Excel component, a count up animation, custom components, skin switching and rich text. The last two items are the ones that usually cost a team the most time. Theme switching in particular is the sort of feature that looks like a checkbox and turns into an afternoon once the design tokens are not centralised. Rich text is a Quill integration with an image drop module and an image resize module, which is a reasonable default set. The feature list is also a description of the dependency set, since each item corresponds to a package in the manifest, from vuedraggable for the drag behaviour to countup.js and echarts for the dashboard pieces.

Getting it running takes a clone and a dependency install

The build setup is a standard Vue CLI workflow with a Chinese mirror suggestion for npm, since the project is developed in that ecosystem.

bash
git clone https://github.com/Neveryu/vue-cms.git
cd vue-cms
yarn install --ignore-engines
npm install --registry=https://registry.npmmirror.com/
npm start

The development server runs on port 8080, and the README asks that you already be familiar with Vue, Vuex, Vue Router, ES2015 and above, and Element UI, and that you understand that some requests are simulated with Mock.js while others use live interface data. Building for production is a separate set of commands, with an optional bundle analyzer report and a deploy shell script.

bash
npm run build
npm run build --report
bash ./deploy.sh

The tree carries the configuration files that arrangement implies, with separate environment files for the base, development and production builds, an ESLint configuration with an ignore file, a Prettier configuration, a Babel configuration, a Jest configuration, a Vue CLI configuration for aliases, the dev server and webpack options, and a deployment script. A tests directory and a public directory with the entry HTML complete the layout.

Mock data and real endpoints are both wired in

The most useful thing the project does for a newcomer is carry both paths at once. The README explains that some of the requests are simulated with Mock.js and that others use real online interface data, and the dependency list confirms both are present, with mockjs and a separate axios version, plus a jsonp package, which is a legacy approach to cross domain calls. The package also ships an axios wrapper along with API and storage helper layers, described in the README as ready to use out of the box. The practical consequence for an adopter is that you can run the interface and click through every screen before you have written a single endpoint, then replace the mock layer with your own services. The cost is that you inherit someone else's assumptions about the shape of an API response, and the interceptor, error handling and token refresh logic in the wrapper layer are the parts you will most likely rewrite.

Everything is pinned to a Vue 2 world

The dependency manifest is the document to read if you are deciding whether to build on this, and it is consistently a Vue 2 stack. Vue itself is at 2.7.16, Vue Router at 3.6.5, Vuex at 3.6.2 and vue-i18n at 7.8.1, with Element UI at 2.15.14 and vue-cli 5.0.8 as the scaffold named in the README note about the current branch. Other pinned versions tell their own story, with echarts at 4.9.0, axios at 0.21.1, quill at 1.3.7, xlsx at 0.12.12, vue-draggable at 2.24.3, countup.js at 1.9.3 and file-saver at 1.3.8, and there is a wired-elements package for web components. The README's browser support statement mentions modern browsers and Internet Explorer 10 and above, which dates the project precisely. Nothing here is broken, and Vue 2.7 does contain the composition API, but a template that pins an end of life framework generation, an end of life component library and an old axios line is a foundation you would be migrating off rather than building on.

The release names make the project's direction explicit

The release list is unusually honest. The newest tag is named last-2.7.16, with a description of it being the last build on vue-cli 5.x with Vue 2.7.16, and it was published on 2026-05-20, the same day as the last push. Before that, the tag 2.x describes the last vue-cli 2.x build and dates from 2020-12-07. There is no third entry, so the sequence is a complete arc rather than a sample. The maintainer is telling you that the Vue 2 line is finished. That is a more useful signal than a stale version number, and it changes how you should read the project: it is a frozen, well populated reference implementation rather than something that will accept a pull request adding Vue 3 support. The repository also carries a NOTE file and editor configuration directories, and the maintainer is credited as Never Yu with the copyright line running from 2017 to the present.

MIT by the README, unknown by the repository listing

The licence is the one loose end. The README states MIT with a link to the LICENSE file in the repository and a copyright line for Never Yu, and the package manifest repeats the MIT identifier in its licence field and in the metadata. The repository listing, however, reports the licence as unknown, which is what happens when the file is named or formatted in a way GitHub cannot classify automatically. For a template you intend to fork, that difference matters more than usual, because the whole point of using it is that most of the code becomes yours. The README also closes with a usage note about the screenfull plugin and a pointer to the dependency entry in the package manifest, which is the kind of detail that only gets written when someone hit a problem with that package and wanted to spare the next person the same afternoon.

Editorial conclusion

vue-cms suits a team that wants a front end skeleton for an internal back office and is happy to own the pieces, since the routing, permission, internationalisation and export patterns are all in the repository and documented by example. It is a poor choice for a new product, because the whole stack is Vue 2 with Element UI, and the newest release is named to mark the last Vue 2.7 build, which is an end of life generation you would be signing up to maintain. Verify three things before you start from it: that the API layer in the axios wrapper matches your backend, since the project ships both Mock.js data and live interface calls and you will be replacing one of them, that the Element UI theme skinning and the custom component wrappers do not block the design you need, and which licence actually applies, since the README and the package manifest both say MIT while the repository listing reports no licence identifier. The last push was on 2026-05-20.

Frequently asked questions

How do I run vue-cms locally?

Clone the repository, change into the vue-cms directory, install the dependencies with yarn install --ignore-engines or with npm against a mirror registry, and run npm start. The development server then serves the application on port 8080.

Which Vue version does vue-cms target?

The current branch is built on the vue-cli 5.0.8 scaffold with vue 2.7.16 and Element UI 2.15.14, with Vue Router 3.6.5, Vuex 3.6.2 and vue-i18n 7.8.1. The newest release is named to mark the last Vue 2.7 build.

Does vue-cms work with a real backend, or only with mock data?

Both are wired in. The README states that some requests are simulated with Mock.js while others use live interface data, and the project ships an axios wrapper with API and storage helper layers that you would point at your own services.

What features does the vue-cms template include?

Login and logout, permission validation, multi environment publishing, a dynamic sidebar with multi level routes, internationalisation, a fullscreen toggle, drag reorder for lists, SVG sprite icons, a dashboard, local mock data, ECharts graphs, Excel and zip export, a visual Excel component, a count up animation, custom components, skin switching and rich text.

Official sources

  1. Issues
  2. Neveryu/vue-cms on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/neveryu-vue-cms.svg)](https://hysenlabs.com/projects/neveryu-vue-cms)

Was this useful?