如何使用 ESLint 适应 GSAP 的命名空间黑客攻击
How to accommodate GSAP's namespace hacking with ESLint?
背景:GSAP有一个..."不规范"进口报关。例
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"}]
,这样就不会检查全局变量。
但是,这些都不能解决上述导入未在使用其"全局子项"的文件中的任何地方使用的问题,并且 ESLint 仍然抛出。
作为权宜之计,我已经尝试在我们为此目的使用的实用程序文件中window.TimelineMax = TimelineMax;
,但这让我觉得杂乱无章。
有没有更好的方法来处理GSAP?
正如@Bergi所说,处理副作用相关库的一种方法是只import 'package';
,并让命名空间需要发生的任何事情发生。
相关文章:
- 在javascript中使用命名空间
- 为什么不推荐使用“with”?是否有更好或其他方法可以“下降”到对象的命名空间
- javascript中的命名空间,IDE中支持代码完成/内容辅助's
- 如何使用javascript命名空间
- js命名空间和变量范围
- html,js-如何限制元素"范围“-命名空间
- 转换自的JavaScript命名空间
- 命名空间与自调用函数
- 什么's当前命名空间/类中JavaScript子命名空间/类的语法
- 无法加载Ace.js编辑器模式和主题(命名空间项目&AMD require.js&grunt
- jQuery命名空间和使用“;这个“;
- 在Firebug控制台中监视javascript命名空间变量
- jQuery事件命名空间是否可以包含破折号
- 用自定义javascript全局命名空间替换窗口
- 如何在Typescript中导出具有其他名称的命名空间
- 从html文件中的脚本标记调用非全局命名空间函数
- 正在测量全局命名空间的污染
- 谷歌闭包命名空间冲突
- socket.io:断开连接事件 - “传输关闭”、“客户端命名空间断开连接”、“传输错误”和“强制关闭”
- 如何使用 ESLint 适应 GSAP 的命名空间黑客攻击