Ng-lazyload-image: ParseError: 'рдЖрдпрд╛рдд' рдФрд░ 'рдирд┐рд░реНрдпрд╛рдд' рдХреЗрд╡рд▓ 'sourceType: рдореЙрдбреНрдпреВрд▓' рдХреЗ рд╕рд╛рде рдкреНрд░рдХрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 19 рдордИ 2016  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: tjoskar/ng-lazyload-image

рдирдорд╕реНрдХрд╛рд░!
рдореИрдВ рдПрдХ рдЖрдпреЛрдирд┐рдХ 2 рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХреЛрдгреАрдп 2 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдФрд░ рдореИрдВ LazyLoad рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рд╕рдВрдХрд▓рди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

my_file.js
import {Component, Input} from "angular2/core";
import {LazyLoadImageDirective} from "ng2-lazyload-image/index";

@Component({
    selector: 'image',
    template: `
        <img src="images/placeholder_big" [lazyLoad]="image" offset="50">
    `,
    directives: [LazyLoadImageDirective]
})
class ImageComponent {
    @Input('src') image;
}
export {ImageComponent}
/Users/lobetia/repo/ionic2_migration/node_modules/ng2-lazyload-image/index.ts:1
import {LazyLoadImageDirective} from './src/lazyload-image.directive';
^
ParseError: 'import' and 'export' may appear only with 'sourceType: module'

/рд╕реВрдЪрдХрд╛рдВрдХ рд▓реЗрдЦрди рдХреЗ рдмрд┐рдирд╛ рдореЙрдбреНрдпреВрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИ
import {LazyLoadImageDirective} from "ng2-lazyload-image";
рдореБрдЭреЗ рдПрдХ рд╕рдорд╛рди рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ

/Users/lobetia/repo/ionic2_migration/node_modules/ng2-lazyload-image/src/lazyload-image.directive.ts:1
import 'rxjs/add/observable/fromEvent';
^
ParseError: 'import' and 'export' may appear only with 'sourceType: module'

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдореИрдВ рдпрд╣ рдкрддрд╛ рдирд╣реАрдВ рд▓рдЧрд╛ рд╕рдХрддрд╛ рдХрд┐ рдХреНрдпрд╛ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдпрд╛ рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдореЗрд░реА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ? рд╢реБрдХреНрд░рд┐рдпрд╛

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдирд┐рд░реНрджреЗрд╢ window рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕реБрдиреЗрдВрдЧреЗ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВ рдмрддрд╛рддреЗ рд╣реИрдВред рдЬреЛ рдЖрдкрдХреЛ ionic рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ div рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЕрд░реНрдерд╛рдд

<ion-content #container>
  <img [scrollTarget]="container._scrollEle" ...>
</ion-content>

рдКрдкрд░ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдФрд░ #2

рд╕рднреА 6 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдирдорд╕реНрддреЗ,

рдЖрдкрдХрд╛ рд╕реЗрдЯрдЕрдк рдХреНрдпрд╛ рд╣реИ? рдХреНрдпрд╛ рдЖрдк рдмреЗрдмреЗрд▓ рдпрд╛ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрдпреЛрдирд┐рдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ?
рдпрджрд┐ рдЖрдк рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдХреНрдпрд╛ рдЖрдк рдореБрдЭреЗ рдЕрдкрдиреА tsconfig.json рдлрд╝рд╛рдЗрд▓ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдиреЛрдб 5.4 . рдкрд░ рдЖрдпрдирд┐рдХ@2.0.0-рдмреАрдЯрд╛.25 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ
рдореИрдВ рдЯрд╛рдЗрдкрдкреНрд░рддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдореЗрд░рд╛ tsconfig.json is

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true
  },
  "filesGlob": [
    "**/*.ts",
    "!node_modules/**/*"
  ],
  "exclude": [
    "node_modules",
    "typings/main",
    "typings/main.d.ts"
  ],
  "compileOnSave": false,
  "atom": {
    "rewriteTsconfig": false
  }
}

рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХреНрдпреЛрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрдХрд▓рд┐рдд .js рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдкреБрди: рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореЗрд░рд╛ рд╕рдорд╛рдзрд╛рди npm рдореЗрдВ рд╕реНрд░реЛрдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдмрд╛рд╣рд░ рдХрд░рдирд╛ рдерд╛ред

рддреЛ рдЕрдЧрд░ рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реВрдВ:

$ ionic start MyIonic2Project tutorial --v2 --ts

рдФрд░ рдлрд┐рд░ /app/pages/hello-ionic/hello-ionic.ts рдХреЛ рдмрджрд▓ рдХрд░:

import { Page } from 'ionic-angular';
import { LazyLoadImageDirective } from 'ng2-lazyload-image';

@Page({
  templateUrl: 'build/pages/hello-ionic/hello-ionic.html',
  directives: [ LazyLoadImageDirective ]
})
export class HelloIonicPage {
    defaultImage: string;
    image: string;
    offset: number;

    constructor() {
        this.defaultImage = 'https://www.placecage.com/1000/500';
        this.image = 'https://images.unsplash.com/photo-1443890923422-7819ed4101c0?fm=jpg';
        this.offset = 100;
    }
}

рдФрд░ /app/pages/hello-ionic/hello-ionic.html рд╕реЗ:

<ion-navbar *navbar>
  <button menuToggle>
    <ion-icon name="menu"></ion-icon>
  </button>
  <ion-title>Hello Ionic</ion-title>
</ion-navbar>

<ion-content padding class="getting-started" #container>
  <p style="height: 1000px;">
      This starter project comes with simple tabs-based layout for apps
      that are going to primarily use a Tabbed UI.
    </p>
    <img
      [src]="defaultImage"
      [lazyLoad]="image"
      [offset]="offset"
      [scrollTarget]="container._scrollEle">
</ion-content>

рдпрд╣ рдЕрдм [email protected] рд╕рд╛рде рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЗрд╕реЗ рдПрдХ рд╕реНрдкрд┐рди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ?

рдФрд░ рджреВрд╕рд░реА рдмрд╛рдд, рдирд┐рд░реНрджреЗрд╢ window рдкрд░ рд╕реНрдХреНрд░реЙрд▓ рдИрд╡реЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╕реБрдиреЗрдВрдЧреЗ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдиреНрдпрдерд╛ рдирд╣реАрдВ рдмрддрд╛рддреЗ рд╣реИрдВред рдЬреЛ рдЖрдкрдХреЛ ionic рдРрдкреНрд╕ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдЖрдВрддрд░рд┐рдХ div рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реЙрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИред

рдЕрд░реНрдерд╛рдд

<ion-content #container>
  <img [scrollTarget]="container._scrollEle" ...>
</ion-content>

рдКрдкрд░ рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗрдВ рдФрд░ #2

рдПрдХ рдЖрдХрд░реНрд╖рдг рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рддреБрдо рдХрдорд╛рд▓ рд╣реЛ!
рдореИрдВрдиреЗ рд╕рдм рдХреБрдЫ рдПрдХ рдЖрдИрдПрдордЬреА-рдЖрд▓рд╕реА рдШрдЯрдХ рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЫрд╡рд┐ рдХреЗ рдлреЗрдбрд┐рди рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдСрдлрд╝рд▓рд╛рдЗрди рдХреИрд╢рд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдкрд░ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдпрд╣ рдореБрджреНрджрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдВрдж рд╣реИ

рдЦреБрд╢реА рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдореИрдВ рдЫрд╡рд┐ рдХреЗ рдлрд╝реЗрдбрд┐рди рдХреЛ рдПрдирд┐рдореЗрдЯ рдХрд░рдиреЗ рдкрд░ рдереЛрдбрд╝рд╛ рдХрд╛рдо рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ

рдмрд╕ рддреБрдо рдЗрддрдирд╛ рдЬрд╛рдирддреЗ рд╣реЛред рдпрджрд┐ рдЖрдк рдПрдХ рд╡рд░реНрдЧ ng2-lazyloading рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдХрдХреНрд╖рд╛ ng2-lazyloaded рдЬреЛрдбрд╝ рджреА рдЬрд╛рдПрдЧреАред

рдЕрд░реНрдерд╛рдд

// Before loaded
<img [lazyLoad]="image" class="ng2-lazyloading">

// After loaded
<img [lazyLoad]="image" class="ng2-lazyloaded">

рдЖрдк рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ: https://github.com/tjoskar/ng2-lazyload-image/blob/a227020c52af0fc30b6683e05c4f4a57f67b13ce/example/image.component.ts#L14 рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб: https://github.com /tjoskar/ng2-lazyload-image/blob/8e8f7d46ebad227c4584594b32d0ac9b1945a74e/src/lazyload-image.directive.ts#L77

рдЕрдЧрд░ рдЖрдкрдХреЛ рдкрд░реЗрд╢рд╛рдиреА рд╣реЛ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВред

рдФрд░ рд╢рд╛рдпрдж рдХреБрдЫ рдСрдлрд╝рд▓рд╛рдЗрди рдХреИрд╢рд┐рдВрдЧ рд╕реБрд╡рд┐рдзрд╛ред

рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдЕрдЪреНрдЫрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рдмрддрд╛рдПрдВ;)

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕