我正在使用Adobe Extendscript,它= = javascript *,我在Atom中使用Atom JSHint包。 Extendscript是Photoshop和After Effects等Adobe应用程序的脚本框架。 Adobe确实创建了一个IDE,但它真的很虚弱,所以我用Atom编写,然后切换到“Extendscript Toolkit”来运行我的脚本。总之...
Adobe允许您使用像#include "myUsefulFunctions.jsx"
这样的C风格预处理程序指令,这样您就可以在库中保留可重用的内容,就像真正的编程语言一样。
问题是JSHint linter在页面顶部看到了我的C风格的预处理器指令,吓坏了,放弃了。为了实际使它得到我的代码lint我必须注释预处理器指令,然后记得在运行代码之前取消注释它们。这意味着每次测试时至少会有3或4次额外的击键,你们都知道这是 The。最差的。事情。如初。
因此,为了节省六次击键,我一直在研究JSHint的设置。到目前为止我发现的任何内容似乎都没有关系。有没有办法全局让JSHint忽略像#this
这样的行,或者在文件中本地使它跳过一两行?
*还是===
?我对JS对真相的态度感到困惑。
答案 0 :(得分:3)
我也试图弄清楚很久,直到找到最佳解决方案。 而不是使用:
#target aftereffects
您可以使用:
//@target aftereffects
我没有找到上述解决方案的任何文件。
我刚刚通过网络在脚本中找到它,我尝试了它并且它有效。
而是使用:
#include "some/path/to/file.jsx"
evalFile()
$ .evalFile(path [,timeout])
从磁盘加载JavaScript脚本文件,对其进行评估,然后返回评估结果。
路径:文件的名称和位置。
超时:可选。如果无法评估脚本,则在返回undefined之前等待的毫秒数。默认值为10000毫秒。
您可以使用:
$.evalFile("some/path/to/file.jsx");
差异在于#include
:
包含来自其他位置的JavaScript源文件。 将指定文件的内容插入该位置的此文件中 这句话。
答案 1 :(得分:1)
在jshint中,您可以通过向行添加ignore语句来忽略行。
#target aftereffects //jshint ignore:line
或者你可以忽略这样的整个块。
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
/* jshint ignore:end */
(顺便说一下,//@target aftereffects
很酷。感谢你指出这一点)
答案 2 :(得分:0)
我更改了我使用的JSHint包,现在不需要解决方法。
对于在Atom开发Extendscript的其他人,我推荐的是这一个:Linter-JSHint。它是Atom Linter软件包的插件,因此您也需要安装它。
然后,一旦你完成了这个,就用它来忽略一个块:
// Code here will be linted with JSHint.
/* jshint ignore:start */
// Code here will be ignored by JSHint.
#includepath "lib"
#include myBrilantLib.jsx
/* jshint ignore:end */
或单行:
ignoreThis(); // jshint ignore:line