我尝试在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中并中断所有脚本。
如果有任何想法如何解决这个问题,请帮忙。 感谢。
答案 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
......任何人都知道这些地方在哪里||如何解决?