前提
gsapというアニメーションライブラリをnpmで読み込みました。
JavaScript
1import { gsap } from 'gsap';
上記の記述で、gsapを使用することが可能になります。
最終的にwebpackを利用して複数の自作アニメーションのモジュールをバンドルしたいと思っています。
やりたいこと
以下のように、gsapを利用したanimeA.jsとanimeB.jsの2種類のアニメーションモジュールを、エントリーファイルのindex.jsで読み込みたいです。
JavaScript
1//index.jsファイル 2import { animeA } from './animeA'; 3import { animeB } from './animeB';
分からない点
その際に、上記のimport文をanimeA.jsとanimeB.jsの両方で記述しています。
以下で、問題なくモジュールを分割し、動作もしているのですが、両方に書くのは正しくない気がしています。
JavaScrpit
1//animeA.jsファイル 2import { gsap } from 'gsap' 3 4export const animeA = () => { 5gsap.to('h1', { x:300, duration:1 }) 6} 7 8//animeB.jsファイル 9import { gsap } from 'gsap' //2回もimportしているのが気になる 10 11export const animeB = () => { 12gsap.to('p', { x:300, duration:1 }) 13} 14
また、以下は試したコードですが、Uncaught ReferenceError: gsap is not definedとなりました。
エントリーファイルでgsapをインポートすれば、以降の読み込んだモジュールでもgsapが使用できると思ったのですが、できませんでした。
このようなケースではどのようにgsapをインポートするのが正しいのでしょうか?
JavaScrpit
1//index.jsファイル 2import { gsap } from 'gsap'; 3import { animeA } from './animeA'; 4animeA() ; 5 6//animeA.jsファイル 7export const animeA = () => { 8gsap.to('h1', { x:300, duration:1 }) 9} 10 11 12//結果 13Uncaught ReferenceError: gsap is not defined 14
あなたの回答
tips
プレビュー