aurelia-contrib/aurelia-getting-started

Aurelia CLI plugin skeleton + Typescrip 3+

HamedFathi opened this issue · 10 comments

@huochunpeng

May I ask you to share a repository based on your how-to-use-cli-to-develop-plugin with Aurelia CLI 1.0 + Typescript 3+?

You have a repository sample for Javascript but not for Typescript. I tried but many problems occurred.

3cp commented

Sure. Will do.

What are your problems?

Thank you so much, my friend, it is so helpful and amazing.

@huochunpeng

I transfer your plugin files to a new project that is made with Aurelia CLI + webpack + ts but I have a problem

This is the repository. AuPluginTest
I want to have nested folder for each plugin but I got an error.

image

image

Do you know what is wong?

3cp commented

config.globalResources([PLATFORM.moduleName('./demo/index')]) would not work.

./demo/index is an entry, not an Aurelia resource (element/value-converter/...).

Try

import {FrameworkConfiguration} from 'aurelia-framework';
import {PLATFORM} from 'aurelia-pal';
import demo from './demo/index';

export function configure(config: FrameworkConfiguration) {
  demo.configure(config);
}

I think you did something like this for aurelia-toolbelt.

@huochunpeng

I think you did something like this for aurelia-toolbelt.

Yes, Now your structure is different.

Unfortunately, I tried but the problem exists, so sorry, May I ask you to make PR to the AuPluginTest?

Aurelia-Toolbelt works with Fusebox but I need to use Webpack for their Webpack Bundle Analyzer

Your structure helps me to achieve this.

3cp commented

Ok, I will have a look.

@huochunpeng

Thank you so much for your guide. It works perfectly.

We want to move Aurelia-Toolbelt to this plugin system so do you know can we keep this structure valid for Aurelia vNext or not?

3cp commented

You probably need a fork of the project anyway to support vnext.

The idea should still work, just use gulp-typescript to transpile a folder to dist.

We have not done anything in cli to support vnext yet. It wouldn’t be much change in cli. Vnext is easier for any bundler.

Thanks for your help

I updated the skeleton here

  1. Support SCSS for plugins
  2. Support other build types (System, ES2015, AMD)