【问题标题】:Error: Can't resolve 'TweenMax' while using Angular CLI with ScrollMagic and GSAP错误:在将 Angular CLI 与 ScrollMagic 和 GSAP 结合使用时无法解析“TweenMax”
【发布时间】:2018-02-19 15:22:40
【问题描述】:

我正在尝试将 Scrollmagic 插件与 Angular CLI 集成。但是,我收到此错误:

./~/ScrollMagic/scrollmagic/minified/plugins/animation.gsap.min.js 未找到模块:错误:无法解析“TweenMax” '/Users/../project/node_modules/ScrollMagic/scrollmagic/minified/plugins'

我已经使用 npm 安装了 GSAP 和 scrollmagic 库:

npm install gsap
npm install scrollmagic

.angular-cli.json

"scripts": [
        "../node_modules/gsap/src/uncompressed/TweenMax.js",
        "../node_modules/scrollmagic/scrollmagic/minified/ScrollMagic.min.js",
        "../node_modules/scrollmagic/scrollmagic/minified/plugins/animation.gsap.min.js",
        "../node_modules/scrollmagic/scrollmagic/minified/plugins/debug.addIndicators.min.js"
      ],

组件

import { Component, OnInit } from '@angular/core';
import { TweenMax, TimelineMax } from "gsap";
import * as ScrollMagic from 'ScrollMagic';
import "ScrollMagic/scrollmagic/minified/plugins/debug.addIndicators.min.js";
import "ScrollMagic/scrollmagic/minified/plugins/animation.gsap.min.js";


@Component({
  selector: 'app-floating-butterfly',
  templateUrl: './floating-butterfly.component.html',
  styleUrls: ['./floating-butterfly.component.scss']
})
export class FloatingButterflyComponent implements OnInit {

  constructor() { }

  ngOnInit() {
    var controller = new ScrollMagic.Controller();
    var scene = new ScrollMagic.Scene({
      triggerElement: ".floating-butterfly"
    })
    .setTween(".floating-butterfly", 0.5, {backgroundColor: "green", scale: 2.5}) // trigger a TweenMax.to tween
    .addIndicators({name: "1 (duration: 0)"}) // add indicators (requires plugin)
    .addTo(controller);


  }
}

【问题讨论】:

  • 目前遇到同样的问题... TweenMax 是唯一一个我无法导入的插件。 TweenLite、TimelineLite 和 Max、CSS 插件都可以工作。也尝试使用绝对路径导入,而不是 npm 包,同样的问题。你解决了吗?
  • @NicoPrat 请参考 LucitheR 的回答

标签: javascript angular gsap scrollmagic


【解决方案1】:

您应该“弹出”您的应用程序。这将使您可以访问 Webpack(不,您不能返回,因此请务必备份。)。

npm install gsap imports-loader scrollmagic --save

安装imports-loader很重要。当 webpack.config.js 添加到你的项目根目录时,重新安装应用程序npm install,因为有新的东西需要安装,然后把它放在你的 webpack 别名中:

  "alias": {
"TweenLite": path.resolve('node_modules', 'gsap/src/uncompressed/TweenLite.js'),
"TweenMax": path.resolve('node_modules', 'gsap/src/uncompressed/TweenMax.js'),
"TimelineLite": path.resolve('node_modules', 'gsap/src/uncompressed/TimelineLite.js'),
"TimelineMax": path.resolve('node_modules', 'gsap/src/uncompressed/TimelineMax.js'),
"ScrollMagic": path.resolve('node_modules', 'scrollmagic/scrollmagic/uncompressed/ScrollMagic.js'),
"animation.gsap": path.resolve('node_modules', 'scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap.js'),
"debug.addIndicators": path.resolve('node_modules', 'scrollmagic/scrollmagic/uncompressed/plugins/debug.addIndicators.js'),},

将此添加到您的 Component.ts:

import 'imports-loader?define=>false!animation.gsap';
import ScrollMagic from 'ScrollMagic';
import 'scrollmagic/scrollmagic/uncompressed/plugins/debug.addIndicators';
import {TweenMax} from 'gsap/TweenMax';
import {TweenLite} from 'gsap/TweenLite';
import {ScrollToPlugin} from "gsap/ScrollToPlugin";

应该可以的

【讨论】:

  • 谢谢,可以了。但是现在如何在不使用ng build 命令的情况下编译项目呢? webpack 中是否有任何等效选项?
  • @RahulDagli npm run buildnpm run start 应该可以工作,请参阅脚本部分中的 package.json
猜你喜欢
  • 1970-01-01
  • 2018-05-03
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 2020-03-24
  • 1970-01-01
相关资源
最近更新 更多