1.1.3 • Published 1 year ago

@arrkid/vue-wrapper-framework v1.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Vue Wrapper Framework

A flexible and modular Vue.js framework for building micro-frontend applications with TypeScript support. This framework enables you to create scalable applications by dynamically importing independent features as needed.

Features

  • šŸŽÆ Dynamic micro-frontend loading
  • šŸ”’ Type-safe with full TypeScript support
  • šŸŽØ Customizable theming
  • šŸ“¦ Pre-built modular components
  • šŸ› ļø CLI tools for project management
  • šŸ”Œ Easy-to-use plugin system
  • šŸ“± Responsive design ready

Installation

# Create a new project
npx @arrkid/vue-wrapper-framework create my-app

# Navigate to project directory
cd my-app

# Start development server
npm run dev

Available Features

Currently, the framework includes two pre-built features:

Feature A: Counter

A simple counter component demonstrating state management and event handling.

npx vue-wrapper import featureA

Feature B: Todo List

A fully functional todo list with add, remove, and toggle capabilities.

npx vue-wrapper import featureB

Basic Usage

<template>
  <FrameworkWrapper :config="config">
    <template #header>
      <nav>
        <!-- Your navigation -->
      </nav>
    </template>
    
    <router-view></router-view>
    
    <template #footer>
      <footer>
        <!-- Your footer -->
      </footer>
    </template>
  </FrameworkWrapper>
</template>

<script setup lang="ts">
import { FrameworkWrapper } from '@arrkid/vue-wrapper-framework';

const config = {
  features: ['featureA', 'featureB'],
  theme: {
    primary: '#42b883',
    secondary: '#35495e'
  }
};
</script>

Configuration

The framework accepts a configuration object with the following options:

interface WrapperConfig {
  // List of features to load
  features?: string[];
  
  // Theme configuration
  theme?: {
    primary: string;
    secondary: string;
  };
}

Creating Custom Features

  1. Create a new feature module:
import type { FeatureModule } from '@arrkid/vue-wrapper-framework';

const myFeature: FeatureModule = {
  name: 'myFeature',
  component: MyComponent,
  routes: [
    {
      path: '/my-feature',
      component: MyComponent
    }
  ],
  async setup() {
    // Initialization logic
  }
};

export default myFeature;
  1. Register your feature in the wrapper configuration:
const config = {
  features: ['myFeature'],
  // ... other config options
};

CLI Commands

# Create a new project
npx vue-wrapper create my-app

# Import features
npx vue-wrapper import featureA featureB

# Add a new feature (scaffolding)
npx vue-wrapper generate feature my-feature

Project Structure

my-app/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ components/
│   │   └── FrameworkWrapper.vue
│   ā”œā”€ā”€ features/
│   │   ā”œā”€ā”€ featureA/
│   │   └── featureB/
│   ā”œā”€ā”€ core/
│   │   ā”œā”€ā”€ createApp.ts
│   │   ā”œā”€ā”€ featureLoader.ts
│   │   └── store.ts
│   └── types/
│       └── index.ts
ā”œā”€ā”€ package.json
└── vite.config.ts

Development

# Install dependencies
npm install

# Start development server
npm run dev

# Build for production
npm run build

# Run tests
npm test

Best Practices

  1. Feature Independence: Each feature should be self-contained with its own components, styles, and logic.

  2. Type Safety: Always use TypeScript interfaces and types for component props and state.

  3. Error Handling: Implement error boundaries and loading states for feature imports.

  4. Performance: Use lazy loading for features that aren't immediately needed.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

For support, please: 1. Check the documentation 2. Open an issue 3. Submit a feature request 4. Contribute to the project

Acknowledgments

  • Vue.js team for the amazing framework
  • All contributors who have helped shape this project
  • The Vue community for inspiration and support

Author

Your Name

1.1.3

1 year ago

1.1.2

1 year ago

1.1.1

1 year ago

1.1.0

1 year ago

1.0.19

1 year ago

1.0.18

1 year ago

1.0.17

1 year ago

1.0.16

1 year ago

1.0.15

1 year ago

1.0.14

1 year ago

1.0.13

1 year ago

1.0.12

1 year ago

1.0.9

1 year ago

1.0.8

1 year ago

1.0.7

1 year ago

1.0.6

1 year ago

1.0.5

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago