PHPackages                             hypejunction/vue-boot - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. hypejunction/vue-boot

ActiveElgg-plugin[Utility &amp; Helpers](/categories/utility)

hypejunction/vue-boot
=====================

Vue bootstrap for Elgg

1.0.0(6y ago)13[24 PRs](https://github.com/hypeJunction/vue-boot/pulls)GPL-2.0PHPPHP &gt;=7.0

Since Sep 30Pushed 3y ago1 watchersCompare

[ Source](https://github.com/hypeJunction/vue-boot)[ Packagist](https://packagist.org/packages/hypejunction/vue-boot)[ Docs](http://hypejunction.com)[ RSS](/packages/hypejunction-vue-boot/feed)WikiDiscussions master Synced 2mo ago

READMEChangelog (1)Dependencies (1)Versions (26)Used By (0)

Vue bootstrap for Elgg
======================

[](#vue-bootstrap-for-elgg)

Provides a generic bootstrap for using Vue components inside Elgg.

Setup
-----

[](#setup)

Inside your plugin create:

### `package.json`

[](#packagejson)

```
{
    "private": true,
    "scripts": {
        "build": "npm run production && rm ./views/default/mix-manifest.json && php ../../elgg-cli flush",
        "production": "npm run components:parse && cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
        "components:parse": "node node_modules/@hypejunction/vue-scanner/cli/scan.js"
    },
    "dependencies": {
        "cross-env": "^5.2.0",
        "global": "^4.4.0",
        "laravel-mix": "^4.1.2",
        "lodash.camelcase": "^4.3.0",
        "vue": "^2.6.10",
        "vue-template-compiler": "^2.6.10"
    },
    "devDependencies": {
        "@babel/plugin-syntax-dynamic-import": "^7.2.0",
        "@hypejunction/vue-scanner": "^1.1.3"
    },
    "vue-scanner": {
        "src": {
            "components": {
                "dirs": [
                    "./src/PLUGIN_NAME/components/"
                ],
                "async": false
            }
        },
        "target": {
            "js": "./src/PLUGIN_NAME/components.js",
            "json": "./src/PLUGIN_NAME/components.json"
        },
        "chunks": true,
        "requestChunks": true,
        "chunkPrefix": "PLUGIN_NAME/"
    }
}
```

### `webpack.mix.js`

[](#webpackmixjs)

```
let mix = require('laravel-mix');

mix.setPublicPath('views/default/')
	.setResourceRoot('views/default/')
	.js('src/PLUGIN_NAME/init.js', 'views/default/PLUGIN_NAME/init.js');

mix.webpackConfig({
	externals: {
		elgg: 'elgg',
		vue: 'vue',
	},

	optimization: {
		splitChunks: false,
	},

	output: {
		libraryTarget: 'umd',
		publicPath: `/mod/PLUGIN_NAME/views/default/`,
	}
});
```

### `src/PLUGIN_NAME/init.js`

[](#srcplugin_nameinitjs)

Inside your `init.js` you can use ES6 to import Vue, register your components, setup your Vue extensions etc.

```
import Vue from 'vue';

// Vue.component();

import './components';
```

The above setup makes it easier to work with components, using `vue-scanner`, which will automatically register all the components for you. You will just need to import the `components.js` in your `init.js`.

Then run `yarn build` - this will build your components into `views/default`, so you can use them inside your templates.

You can then add these components into your plugin's views:

```
echo \hypeJunction\VueBoot\Vue::instance()->render('MyComponent', [
	'params' => $entity->getParams(),
	// list all props to pass to the component
], [
	'PLUGIN_NAME/init', // load the init script
]);
```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

2413d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5071b1cd852e094b3f564962a625e04c227adc73af30c5b46b243ab8f20154a7?d=identicon)[hypeJunction](/maintainers/hypeJunction)

---

Top Contributors

[![hypeJunction](https://avatars.githubusercontent.com/u/1202761?v=4)](https://github.com/hypeJunction "hypeJunction (2 commits)")

---

Tags

pluginelggvue

### Embed Badge

![Health badge](/badges/hypejunction-vue-boot/health.svg)

```
[![Health](https://phpackages.com/badges/hypejunction-vue-boot/health.svg)](https://phpackages.com/packages/hypejunction-vue-boot)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
