如何使用 ESLint 适应 GSAP 的命名空间黑客攻击?
How to accommodate GSAP's namespace hacking with ESLint?
背景:GSAP 有一个..."irregular" 进口申报。例子
import TimelineMax from 'gsap';
import GSAP from 'gsap-react-plugin';
令人惊讶的是,您从不在任何地方使用这两个对象中的任何一个,尽管需要导入它们。发生的事情是一堆对象被加载到全局命名空间中,所以这突然成为可能:
_animateIn() {
const toggleWrapper = ReactDOM.findDOMNode(this.refs.toggleWrapper);
TweenLite.set(toggleWrapper, { display: 'block' });
TweenLite.to(toggleWrapper, 0.3, { opacity: 1 });
}
我基本上已经接受了这一点,但我在我的 ESLint 配置中遇到了问题。
我拥有所有全局变量,因此使用的任何东西都不会抛出:
"globals": [
"TimelineLite",
"TimelineMax",
"TweenLite",
"TweenMax",
"Back",
"Bounce",
"Circ",
"Cubic",
"Ease",
"EaseLookup",
"Elastic",
"Expo",
"Linear",
"Power0",
"Power1",
"Power2",
"Power3",
"Power3",
"Power4",
"Quad",
"Quart",
"Quint",
"RoughEase",
"Sine",
"SlowMo",
"SteppedEase",
"Strong",
"Draggable",
"SplitText",
"VelocityTracker",
"CSSPlugin",
"ThrowPropsPlugin",
"BezierPlugin"
],
我有 "no-unused-vars": [2, {"vars": "local"}]
这样全局变量也不会被检查。
但是,这些都没有解决上述导入未在使用其 "global children," 的文件中的任何地方使用并且 ESLint 仍然抛出的问题。
作为权宜之计,我已经尝试 window.TimelineMax = TimelineMax;
在我们一直用于此目的的 utils 文件中,但这让我觉得杂乱无章。
有没有更好的方法来处理 GSAP?
正如@Bergi 所说,处理依赖于副作用的库的一种方法是 import 'package';
,让命名空间发生任何需要发生的事情。
背景:GSAP 有一个..."irregular" 进口申报。例子
import TimelineMax from 'gsap';
import GSAP from 'gsap-react-plugin';
令人惊讶的是,您从不在任何地方使用这两个对象中的任何一个,尽管需要导入它们。发生的事情是一堆对象被加载到全局命名空间中,所以这突然成为可能:
_animateIn() {
const toggleWrapper = ReactDOM.findDOMNode(this.refs.toggleWrapper);
TweenLite.set(toggleWrapper, { display: 'block' });
TweenLite.to(toggleWrapper, 0.3, { opacity: 1 });
}
我基本上已经接受了这一点,但我在我的 ESLint 配置中遇到了问题。
我拥有所有全局变量,因此使用的任何东西都不会抛出:
"globals": [
"TimelineLite",
"TimelineMax",
"TweenLite",
"TweenMax",
"Back",
"Bounce",
"Circ",
"Cubic",
"Ease",
"EaseLookup",
"Elastic",
"Expo",
"Linear",
"Power0",
"Power1",
"Power2",
"Power3",
"Power3",
"Power4",
"Quad",
"Quart",
"Quint",
"RoughEase",
"Sine",
"SlowMo",
"SteppedEase",
"Strong",
"Draggable",
"SplitText",
"VelocityTracker",
"CSSPlugin",
"ThrowPropsPlugin",
"BezierPlugin"
],
我有 "no-unused-vars": [2, {"vars": "local"}]
这样全局变量也不会被检查。
但是,这些都没有解决上述导入未在使用其 "global children," 的文件中的任何地方使用并且 ESLint 仍然抛出的问题。
作为权宜之计,我已经尝试 window.TimelineMax = TimelineMax;
在我们一直用于此目的的 utils 文件中,但这让我觉得杂乱无章。
有没有更好的方法来处理 GSAP?
正如@Bergi 所说,处理依赖于副作用的库的一种方法是 import 'package';
,让命名空间发生任何需要发生的事情。