1

I want to make my components portable to other projects, therefore I want to have all the images contained in the component folder and let the compiler take care of it.

I found different solutions which I all don't quite like:

1) Defining different folders in the angular.json:

Is it mandatory to keep images in assets folder in Angular 2?

I don't like this approach because it requires a lot of manual work.

2) Defining a path variable within the component

Angular 2 img src in a relative path

This approach creates a lot of extra variables.

My goal would be to do s.th. like this

A) Referencing to the image like all other images:

<img *ngIf="images[sensor.model]" [src]="'assets/images/' + images[sensor.model]"/>

B) Configuring the compiler to move the images from all folders to assets, e.g. in an old AngularJs project where I used gulp, this could be done with globbing:

gulp.task('images', function () {
  return gulp.src([paths.src + '/**/*.{jpg,jpeg,png,svg,gif}', '!'+'/**/*/*-sprite*'])
    .pipe($.rename({dirname: ''}))
    .pipe(gulp.dest(paths.dist + '/assets/images/'));
});

And it could be easily achieved, that images are only copied if images change for faster compiling:

gulp.watch(paths.src + '/**/*.{jpg,jpeg,png,svg,gif}', ['images']);

Question

Can the compiler be set up to search for images and move them to assets/images and would there be a downside to it ( I read that assets are static for faster compiling ).

Community
  • 1
  • 1
Andi Giga
  • 3,744
  • 9
  • 38
  • 68

0 Answers0