将gsap与nuxtjs一起使用

问题描述 投票:2回答:1

我想将gsap与ScrollMagic结合使用。 ScrollMagic已经实现,它工作正常,但是当我想使用animation.gsap时,我得到了错误

找不到这些依赖项:* ./node_modules/scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap.js中的TimelineMax * ./node_modules/scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap.js中的TweenMax

因此我通过npm安装了gsap

npm i gsap

和导入的TimelineMax和TweenMax

if (process.browser) {
    const sm = require('ScrollMagic')

    require('gsap/TimelineMax')
    require('gsap/TweenMax')

    require('scrollmagic/scrollmagic/uncompressed/plugins/animation.gsap')
    require('scrollmagic/scrollmagic/uncompressed/plugins/debug.addIndicators')

    Vue.prototype.$sm = sm
    Vue.prototype.$smController = new sm.Controller()
}

在我的nuxt.config.js文件中,我将gsap添加到供应商数组中

vendor: ['gsap', 'ScrollMagic', 'vuebar', 'vee-validate'],

在我的组件中,我使用此代码进行视差效果

new this.$sm.Scene({
    triggerElement: '#js-introduction-paralax',
    triggerHook: 'onEnter'
})
    .duration('200%')
    .setTween('#js-introduction-paralax', {
        backgroundPosition: '50% 100%'
        ease: Linear.easeNone
    })
    .addIndicators()
    .addTo(this.$smController)

但我仍然得到没有找到依赖项的错误

UPDATE

我也尝试以这种方式导入它

import { TweenMax, TimelineMax, Linear } from 'gsap'
or seperated
import TweenMax from 'gsap/TweenMax'; 
import TimelineMax from 'gsap/TimelineMax';

但结果相同

我也尝试制作别名

resolve: {
    modules:[
      path.resolve(__dirname), path.resolve(__dirname, "node_modules")
    ],
    alias: {
        "TweenMax": path.resolve('node_modules', 'gsap/TweenMax'),
        "TimelineMax": path.resolve('node_modules', 'gsap/TimelineMax'),
        "gsap": path.resolve('node_modules', 'gsap'),
    }
},

同样的结果

当我在控制台写

window.TweenMax

我明白了

ƒ (target, duration, vars) {
            TweenLite.call(this, target, duration, vars);
            this._cycle = 0;
            this._yoyo = (this.vars.yoyo === true || !!this.vars.yoyoEase);
            this._repeat = this.vars.repe…

所以有东西加载......

webpack gsap scrollmagic nuxt.js
1个回答
0
投票

它对你有用。我也有一些像你这样的错误,我找到了解决问题here的方法。

import ScrollMagic from 'scrollmagic'
import {
    TweenMax,
    TimelineLite
} from 'gsap'

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

别忘了做

npm i scrollmagic imports-loader
© www.soinside.com 2019 - 2024. All rights reserved.