我刚刚开始使用jsLint和mojo(1.7.1-alpha-1),这对我来说很光......
在我用于项目的pom.xml文件中,我为jsLint设置了以下内容:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jslint-maven-plugin</artifactId>
<version>1.0.1</version>
<executions>
<execution>
<goals>
<goal>jslint</goal>
<goal>test-jslint</goal>
</goals>
</execution>
</executions>
<configuration>
<excludes>
<exclude>**/vendor/*</exclude>
</excludes>
</configuration>
</plugin>
在我的js文件的顶部,我有以下内容:
/*jslint nomen: true, browser: true, devel: true*/
在文件中我有一个叫做的方法:
Api.prototype._call = function (query) {...};
我称之为:
Api.prototype.product = function (options) {
...
return this._call(query);
};
现在对于奇怪的事情......
如果我用mvn clean install
编译它,我会收到以下错误消息:
api.js:45:29:Unexpected dangling '_' in '_call'.
但是,如果我恢复nomen的标志说nomen: false
mvn不抱怨!
另一方面,这导致IntelliJ用红色标记标记代码的_call
部分,因为它是jsLint。
答案 0 :(得分:0)
它看起来像是“jslint-maven-plugin”插件中的一个错误。
official JSLint docs如果不应检查姓名的初始或尾随下划线,则options checkboxes on jslint.com说nomen为“true
。”您还可以使用the source code验证该内容。
“jslint-maven-plugin”源代码似乎反向出现:如果您在file a bug here中搜索“nomen”,您会看到它们将其映射到名为disallowDanglingUnderbarInIdentifiers
的内容 - - nomen
的含义的逆。 (我不完全确定这是如何转换为覆盖 JS文件中的配置设置,但它肯定似乎是可疑的。)
看起来你可以在插件上{{3}},如果这是任何安慰。