如何在Node.js中要求GSAP

时间:2014-09-07 11:07:44

标签: node.js require tweenmax gsap

我尝试在Node.js中包含GSAP动画库。例如,我尝试运行具有完整功能的GSAP,为此,我需要首先包含TweenMax.js'接下来是TimelineMax.js'。在GSAP的最新版本中,我看到了' TweenMax.js'和' TimelineMax.js'在代码实现中为Node.js提供了module.exports,但是当我尝试使用Node.js - require('./lib/gsap/TweenMax.js')时需要它们时,Node.js会返回给我

'reference error: document is not defined'

在TweenMax.js中并中断所有脚本。

如果有任何想法如何解决这个问题,请帮忙。 感谢。

2 个答案:

答案 0 :(得分:3)

取自论坛:

// shim for all the methods gsap is testing for css prefixes, etc 
var window = {}
  , navigator = { userAgent: "" }
  , dummyElement = { style: {}, getElementsByTagName: function() { return [] } }
  , document = { createElement: function() { return dummyElement } };

/* insert tweenmax here */

// export timeline max
module.exports = TimelineMax;

答案 1 :(得分:0)

我试图使用ХристоПанайотов提供的垫片,但我无法让它工作。下面介绍了实现此功能的详细步骤;请注意,所有这些修改都在同一个文件上完成,/ node_modules/gsap/src/uncompressed/TweenMax.js

1 - 首先安装gsap

npm install gsap

2 - 将以下内容添加到文件的开头(* shimmed也可以在浏览器中使用):

var window = window || this
   , navigator = window.navigator || { userAgent: "" }
   , dummyElement = { style: {}, getElementsByTagName: function() { return [] } }
   , document = document || { createElement: function() { return dummyElement } };

3 - 将以下“if”语句添加到6526 /附近的以下循环中。

for (p in _tweenLookup) {

    a = _tweenLookup[p].tweens;

    if(a && a.length) { // *** this is what I added (ends up undefined somehow).

        i = a.length;

        while (--i > -1) {
            if (a[i]._gc) {
                a.splice(i, 1);
            }
        }

        if (a.length === 0) {

            delete _tweenLookup[p]; // possible culprit: if this is an array, you should splice it!
        }
    }
}

4 - 在文件末尾,在主要闭包之前,添加以下内容:

module.exports = _gsScope;

5 - 如何使用:

var gsap = require('gsap');

var Timelinelite = gsap.TimelineLite;

var TweenMax = gsap.TweenMax;

var Easing = gsap.Easing;

/// ect...

这是我的github repo的链接,我在其中放置了我的TweenMax.js脚本:HERE

我无法解决以下“丢失的缺失依赖项”;到目前为止,这似乎没有任何影响(测试TweenlineMax,TweenMax,Easing等)。错误是:

GSAP encountered missing dependency: com.greensock.size
GSAP encountered missing dependency: com.greensock.clean
GSAP encountered missing dependency: com.greensock.byIndex

......任何人都知道这些地方在哪里||如何解决?