ng build --prod = Невозможно установить свойство '_autoActivation' из неопределенного - PullRequest
0 голосов
/ 01 июля 2018

Я пытаюсь развернуть приложение Angular, но после запуска ng build --prod --base-href . в Chrome

появляется следующая ошибка
main.afc84290417a517dd6c3.js:1 Uncaught TypeError: Cannot set property _autoActivated' of undefined
    at Object.zUnb (main.afc84290417a517dd6c3.js:1)
    at p (runtime.a66f828dca56eeb90e02.js:1)
    at Object.5 (main.afc84290417a517dd6c3.js:1)
    at p (runtime.a66f828dca56eeb90e02.js:1)
    at n (runtime.a66f828dca56eeb90e02.js:1)
    at Array.e [as push] (runtime.a66f828dca56eeb90e02.js:1)
    at main.afc84290417a517dd6c3.js:1

ng -v выходов

Angular CLI: 6.0.8
Node: 8.11.2
OS: darwin x64
Angular: 6.0.7
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Я не совсем уверен, как это отладить? Запустив ng serve приложение работает нормально.

При поиске в проекте единственная ссылка на _autoActivated находится в TweenMax.js

export const TweenMax = TweenMaxBase;
TweenMax._autoActivated = [TimelineLite, TimelineMax, CSSPlugin, AttrPlugin, BezierPlugin, RoundPropsPlugin, DirectionalRotationPlugin, Back, Elastic, Bounce, RoughEase, SlowMo, SteppedEase, Circ, Expo, Sine, ExpoScaleEase];

Зависимости приложения -

 "@angular/animations": "^6.0.7",
    "@angular/cdk": "^6.3.1",
    "@angular/common": "^6.0.7",
    "@angular/compiler": "^6.0.7",
    "@angular/core": "^6.0.7",
    "@angular/forms": "^6.0.7",
    "@angular/http": "^6.0.7",
    "@angular/material": "^6.3.1",
    "@angular/platform-browser": "^6.0.7",
    "@angular/platform-browser-dynamic": "^6.0.7",
    "@angular/router": "^6.0.7",
    "@types/three": "^0.92.11",
    "core-js": "^2.5.4",
    "gsap": "^2.0.1",
    "hammerjs": "^2.0.8",
    "normalize-scss": "^7.0.1",
    "normalize.css": "^8.0.0",
    "rxjs": "^6.2.1",
    "three": "^0.87.1",
    "three-effectcomposer-es6": "0.0.4",
    "three-screen-quad": "^0.2.1",
    "zone.js": "^0.8.26"

Ответы [ 3 ]

0 голосов
/ 24 июля 2018

Возникла такая же проблема, переключите gsap на другую библиотеку, например popmotions, и она работает.

Это потому, что TweenMax использует такие функции, как getBoundingClientRect(), и пытается добавить div к dom, чтобы определить некоторые вещи. Что, очевидно, невозможно на сервере.

Я все еще предпочитаю gsap вместо popmotion (на мой взгляд, это ужасный синтаксис), но я пробовал множество вещей.

• Ленивая загрузка gsap (не идеально).

• Настройка библиотеки gsap (не идеально)

• Окно-макет, документ и навигатор с библиотекой domino

Все не повезло. Если кто-нибудь найдет решение с помощью gsap, я хотел бы услышать.

0 голосов
/ 28 сентября 2018

У меня была такая же проблема. Вы должны добавить следующие сценарии к angular.json

"scripts": [
              "./node_modules/gsap/umd/TweenMax.js",
              "./node_modules/gsap/umd/ScrollToPlugin.js"]
0 голосов
/ 14 июля 2018

Я столкнулся с той же проблемой, она вызвана GSAP в сочетании с Оптимизатором сборки Angular.

Вы можете отключить это за счет некоторого размера файла, перейдя в angular.json. Настройте конфигурацию производственной сборки следующим образом:

"configurations": {
  "production": {
    "optimization": true,
    "outputHashing": "all",
    "sourceMap": false,
    "extractCss": true,
    "namedChunks": false,
    "aot": true,
    "extractLicenses": true,
    "vendorChunk": false,
    "buildOptimizer": false, // <-- This ensures compatibility with GSAP
    "fileReplacements": [
      {
        "replace": "src/environments/environment.ts",
        "with": "src/environments/environment.prod.ts"
      }
    ]
  }
}
...