Angular: рдмреЗрдЬрд╝реЗрд▓ рдХреЗ рддрд╣рдд рдЯреНрд░реА-рд╢реЗрдХреЗрдмрд▓ рдкреНрд░рджрд╛рддрд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдЧрд▓рдд рдЖрдпрд╛рдд

рдХреЛ рдирд┐рд░реНрдорд┐рдд 15 рдордИ 2018  ┬╖  1рдЯрд┐рдкреНрдкрдгреА  ┬╖  рд╕реНрд░реЛрдд: angular/angular

рдЯреНрд░реА-рд╢реЗрдХреЗрдмрд▓ рдкреНрд░рджрд╛рддрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдХреЛрдб рдореЗрдВ рдЖрдпрд╛рдд рд╡рд┐рд╡рд░рдг рдкреЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдВрдЧреБрд▓рд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдордиреЗ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдРрд╕реЗ рд╕реНрдерд╛рди рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рдо рдореЙрдбреНрдпреВрд▓ рдирд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рд╕реНрдХ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдкрдереЛрдВ рдХреЛ рдорд┐рд▓рд╛рддреЗ рд╣реИрдВ (рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рдкрд╣рд▓реЗ рдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдпрд╣ рдЕрдВрддрд░ рдирд╣реАрдВ рдерд╛)
рддреЛ рд╣рдо рдЬреИрд╕реЗ рдЖрдпрд╛рдд рд▓реЗрдЦрди рдЕрдВрдд import {} from 'wksp/packages/path/to/thing' рдХрд┐ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдерд╛ import {} from '@pkg_name/path/to/thing'

рдЬрд╣рд╛рдБ рддрдХ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдХреЗрд╡рд▓ Bazel рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ рдЬреЛ ngc рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЯреНрд░реА-рд╢реЗрдХреЗрдмрд▓ рдкреНрд░рджрд╛рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЕрдм рддрдХ рд╣рдордиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдХреЗрд╡рд▓ рдХреЛрдгреАрдп рдореЗрдВ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рд╣реИред

рдпрд╣ #20030 . рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛

рд░рд┐рдкреНрд░реЛ рдХреЗ рд▓рд┐рдП, рдПрдХ рдкреЗрдбрд╝ рдХреЛ рд╣рд┐рд▓рд╛рдиреЗ рдпреЛрдЧреНрдп рдкреНрд░рджрд╛рддрд╛ рдЬреЛрдбрд╝реЗрдВ рдЬреИрд╕реЗ packages/common/src/common_module.ts рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ

import {Injectable, PLATFORM_ID} from '@angular/core';
import {DOCUMENT, isPlatformBrowser} from '@angular/common';

export function viewportScrollerFactory(platformId: string, document: any) {
  return isPlatformBrowser(platformId) ? null: null;
}

@Injectable(
    {providedIn: 'root', useFactory: viewportScrollerFactory, deps: [PLATFORM_ID, DOCUMENT]})
export abstract class ViewportScroller {}

рдлрд┐рд░ npm рдкреИрдХреЗрдЬ рдмрдирд╛рдПрдВ

bazel build //packages/common:npm_package

рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╕реНрдЯреНрд░рд┐рдВрдЧ angular/packages рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ:

$ export bin=$(bazel info bazel-bin)
$ find $bin -type f -exec fgrep -l angular/packages {} \; | grep -v ngsummary | grep -v ngfactory

рд╣рдо ngsummary рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрдирдореЗрдВ рд╣рдореЗрд╢рд╛ рдбрд┐рд╕реНрдХ рдкрд░ рдореЙрдбреНрдпреВрд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрде рд╣реЛрддреЗ рд╣реИрдВред
ngfactory рдлрд╝рд╛рдЗрд▓реЗрдВ рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рднреЗрдЬреА рдЬрд╛рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпреЗ рд╢рд╛рдпрдж рд╣рд╛рдирд┐рд░рд╣рд┐рдд рднреА рд╣реИрдВред

рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рд╣рдо ES2015 рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдЦрд░рд╛рдм рдЖрдпрд╛рдд рдкрд╛рддреЗ рд╣реИрдВ:

bin/packages/common/src/common_module.closure.js

/**
 * <strong i="28">@fileoverview</strong> added by tsickle
 * <strong i="29">@suppress</strong> {checkTypes} checked by tsc
 */
/**
 * <strong i="30">@license</strong>
 * Copyright Google Inc. All Rights Reserved.
 *
 * Use of this source code is governed by an MIT-style license that can be
 * found in the LICENSE file at https://angular.io/license
 */
import { NgModule } from '@angular/core';
import { COMMON_DIRECTIVES } from './directives/index';
import { DEPRECATED_PLURAL_FN, NgLocaleLocalization, NgLocalization, getPluralCase } from './i18n/localization';
import { COMMON_DEPRECATED_I18N_PIPES } from './pipes/deprecated/index';
import { COMMON_PIPES } from './pipes/index';
import { Injectable, PLATFORM_ID } from '@angular/core';
import { DOCUMENT, isPlatformBrowser } from '@angular/common';
import * as i0 from "@angular/core";
import * as i1 from "@angular/core/src/application_tokens";
import * as i2 from "angular/packages/common/src/dom_tokens";  // <-------------------------

рд▓реЗрдХрд┐рди ES5 рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рдирд╣реАрдВ

bin/packages/common/src/common_module.js

(function (factory) {
    if (typeof module === "object" && typeof module.exports === "object") {
        var v = factory(require, exports);
        if (v !== undefined) module.exports = v;
    }
    else if (typeof define === "function" && define.amd) {
        define("@angular/common/src/common_module", ["require", "exports", "tslib", "@angular/core", "@angular/common/src/directives/index", "@angular/common/src/i18n/localization", "@angular/common/src/pipes/deprecated/index", "@angular/common/src/pipes/index", "@angular/core", "@angular/common", "@angular/core", "@angular/core/src/application_tokens", "@angular/common/src/dom_tokens"], factory);
    }
})(function (require, exports) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var tslib_1 = require("tslib");
    var core_1 = require("@angular/core");
    var index_1 = require("@angular/common/src/directives/index");
    var localization_1 = require("@angular/common/src/i18n/localization");
    var index_2 = require("@angular/common/src/pipes/deprecated/index");
    var index_3 = require("@angular/common/src/pipes/index");
    var core_2 = require("@angular/core");
    var common_1 = require("@angular/common");
    var i0 = require("@angular/core");
    var i1 = require("@angular/core/src/application_tokens");
    var i2 = require("@angular/common/src/dom_tokens");

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

рд╣рдо рднреА рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд░рд╣реЗ рд╣реИрдВред

рд╣рдо рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдкреАрдЖрдИ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдореЛрдиреЛ-рд░реЗрдкреЛ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдкрдереЛрдВ рдореЗрдВ рднреА рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ:

import * as i1 from "@our-group/our-package/src/some-service";

рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП ES5 рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рдХрд╛рд░рдг рд╕рдорд╛рди рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб @Injectable рдореЗрдВ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рд╕реНрд╡рдпрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдХреЛрдгреАрдп рдХреЛ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЛрд╖рдкреВрд░реНрдг рдЖрдпрд╛рдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА/рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдореЗрд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдХреЛрдб рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИред
  • рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░рдг рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдгреАрдп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред

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

рд╣рдо рднреА рдЕрдм рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд░рд╣реЗ рд╣реИрдВред

рд╣рдо рдХрдВрдкрд╛рдЗрд▓рд░ рдПрдкреАрдЖрдИ рдХреЛ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдореЛрдиреЛ-рд░реЗрдкреЛ рдореЗрдВ рдХрд╣рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЖрдпрд╛рдд рдкрдереЛрдВ рдореЗрдВ рднреА рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ рдЬреИрд╕реЗ:

import * as i1 from "@our-group/our-package/src/some-service";

рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП ES5 рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореВрд▓ рдХрд╛рд░рдг рд╕рдорд╛рди рд╣реИред
рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб @Injectable рдореЗрдВ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рд╕реНрд╡рдпрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдХреЛрдгреАрдп рдХреЛ рдХрд╛рд░рдЦрд╛рдиреЗ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рджреЛрд╖рдкреВрд░реНрдг рдЖрдпрд╛рдд рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред

рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА/рдкреБрдирд░реБрддреНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:

  • рдореЗрд░реЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдорд╛рд▓рд┐рдХрд╛рдирд╛ рдХреЛрдб рдХрд╛ рдорд┐рд╢реНрд░рдг рд╣реИред
  • рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛтАЛтАЛрд╣реИ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрд╛рд░рдг рдЬрд╛рдирддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдЗрд╕реЗ рдЗрд╕ рдзрд╛рд░рдгрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рди рджреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рдХреЛрдгреАрдп рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

deepakgd picture deepakgd  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lsim picture lsim  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

mohsen1 picture mohsen1  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alippai picture alippai  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

vladimir-ivanov picture vladimir-ivanov  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ