Error: Can't resolve 'TweenMax' while using Angular CLI with ScrollMagic and GSAP
我正在尝试将Scrollmagic插件与Angular CLI集成。 但是,我收到此错误:
./~/ScrollMagic/scrollmagic/minified/plugins/animation.gsap.min.js
Module not found: Error: Can't resolve 'TweenMax' in
'/Users/../project/node_modules/ScrollMagic/scrollmagic/minified/plugins'
我已经使用npm安装了GSAP和scrollmagic库:
1 2 | npm install gsap npm install scrollmagic |
.angular-cli.json
1 2 3 4 5 6 | "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" ], |
零件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | 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); } } |
您应该"退出"您的应用程序。 这将使您可以访问Webpack(不,您不能返回,所以请确保备份。)。
1 | npm install gsap imports-loader scrollmagic --save |
安装imports-loader很重要。 将webpack.config.js添加到项目根目录后,请重新安装应用程序
1 2 3 4 5 6 7 8 | "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中:
1 2 3 4 5 6 | 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"; |
那应该工作