如何告诉 JSHint 在另一个 JS 文件中查找定义
How to tell JSHint to look for definitions in another JS file
这是问题所在:我在Grunt中使用JSHint。我有几个JS文件,它们最终会合并成一个文件。但在合并之前,我想运行JSHint。但是,JSHint抱怨一些未定义的变量。下面是一个示例:1. JavaScript/file_one.js 定义了一个变量:var Foo = (function (){}());2. JavaScript/file_two.js 使用该模块。新福()。
jshint: {
files: ['Gruntfile.js',
'javascript/**/*.js',
],
options: {
// some options.
}
}
JSHint抱怨Foo没有在file_two.js中定义。
以下是我的目标(如果可能的话):1.我想在单独的文件中拥有代码。因此,某些变量可能在不同的文件中定义。2. 我想让JSHint检查源JS文件。我不想将所有JS文件合并为一个并让JSHint检查合并的文件。3. JSHint 可以检查 <%= jshint.files %> 中的所有文件(例如 javascript/**/*.js)并查找定义。
我知道有一个解决方法是将Foo作为选项中的全局变量,就像这篇文章中如何告诉JSLint/JSHint已经定义了哪些全局变量。但我不想把我定义的变量放在那里,因为每个这样的变量都在我的源文件中。
所以我的问题是是否有办法实现我的目标 3 告诉 JSHint 在其他文件中查找定义。
使用以下方法,其优点是根本不使用 JSHint 配置。
在第一个文件(为变量提供初始值的文件)中:
var username = "guest"; // it becomes: window.username
在另一个(第二个、第三个)文件中:
var username = window.username;
各种注意事项:
通过使用 var
声明,它成为窗口(全局)对象(window.username
)的属性。使用 var
,这样您就可以多次声明它(let
不能这样做)。
使用函数表达式(不是函数声明)的函数也可以这样做。
如果变量是对象(例如,函数)或不需要更改其值,则还可以在第二个文件中使用 let
。另一种选择是根本不在第二个文件中声明它。在这种情况下,每次使用时都使用 window
:
console.log(window.username);
使用这种技术,它还有一个额外的优势,即您可以将"超全局"变量(使用 var
声明并附加到全局对象 - 窗口的变量)与"仅全局"变量(使用 let
声明,您应该这样做,并附加到全局上下文而不是全局对象)。
你的目标无法实现。JSHint 将在您的 .jshintrc 或您的 Gruntfile 中查找配置。唯一可以进行的其他覆盖是在单个文件中本地进行。
如果您依赖于全局变量,则应禁用该设置,覆盖以在配置或每个文件中指定每个变量,或将它们全部放在命名空间中。
我强烈建议切换到模块模式,并禁止任何泄漏到全局范围内的内容
在file_two.js中告诉JSHint它使用的全局变量
/* global Foo, Bar */
对于file_one.js,您将收到一条消息,指出Foo已定义但未使用。所以你需要告诉JSHint其他文件会使用它
/* exported Foo */
- 在IntelliJ IDEA中,如何将JS文件从“;查找用法“;使用TypeScript时的结果
- 可在多个相册文件夹中查找的动态图像库
- Node.js服务器问题-已添加“/"在浏览器中查找文件时
- 在JSON文件中查找一个元素,并将其显示为HTML
- 无法查找元素'手动加载CSS文件时的CSS属性
- JavaScript 文件或文件夹查找和导入
- 如何使用 Java 脚本从 csv 文件中查找每列的数据类型
- GridFS 通过_id使用文件名下载来查找文件
- 递归查找 jsTestDriver 中的文件
- 用于在组合文件中查找 AMD 定义呼叫的正则表达式
- Require JS with Knockout组件正在查找路径不正确的JS文件
- 更新:用户错误-TYPO!!grunt contrib咖啡错误查找文件&写入目的地
- 查找并替换多个Photoshop文件中的文本
- 如何查找不同页面上是否确实需要包含的JavaScript文件
- 如何在日志文件中查找字符串并返回整行
- 使用Realm React Native查找Realm文件的路径,以便与Realm Browser一起使用
- 查找位置/地址的Js文件
- 如何查找jquery或javascript事件从哪个文件发生
- JQuery可以't从单独的javascript文件中查找变量
- 同步和递归文件系统文件查找