4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

webpack2でScrollMagicのGSAPプラグインを読み込めなかった件

Posted at

webpack(v2)で開発をしていて、ScrollMagicTweenMaxを使おうと思ったときに躓いてしまったのでメモ。

npmでインストール

ScrollMagicもTweenMaxもnpmにあるのでそちらからインストール

npm install gsap
npm install scrollmagic

使うです

iwanttousescrollmagic.js
import {TweenMax} from "gsap";
import ScrollMagic from "scrollmagic";

~~  ~~

this.controller = new ScrollMagic.Controller();
this.targetElement = document.getElementById('#targetElement');
new ScrollMagic.Scene({
  triggerElement: '#triggerElement',
  duration: 100,
  offset: 50
})
.setTween(this.targetElement, {
  y: -100
})
.addTo(this.controller);

setTweenするならgsap用のプラグインを使ってねとエラー。ごもっともです。

(ScrollMagic.Scene) -> ERROR calling setTween() due to missing Plugin 'animation.gsap'. Please make sure to include plugins/animation.gsap.js

プラグインをインポートしてみる。

.js
import 'scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap';

webpackからコンパイル失敗の旨お知らせいただいた。

Module not found: Error: Can't resolve 'TweenMax' in ~~~

TweenMaxモジュールを見つけることができなかったという内容のようだ。なんでだろう?

imports-loaderを使って解決

resolve.alias など、いろいろ試してみたが駄目だった。
こちらに記載されているとおりにimports-loaderを使って以下のようにプラグインを読み込むようにしたところ、正常に動作するようになった。

.js
import 'imports-loader?define=>false!scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap';

imports-loaderについてはこちら。webpackで使用するうえで、そのままでは使えないような記述のjsファイルやサポートされていないモジュールのフォーマットで作成されたものなどを取り込むときに使用するらしい。

動いたので良かったです。

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?