我正在使用video.js库。我试图修改它,因此它使用自定义播放器而不是HTML5播放器。 所以我用对自定义播放器的调用(比如 custFunc1())将函数调用替换为 play()等。这些调用在单独的javascript文件中定义: custPlayer.js 。
因此,在我的 index.html 文件中,我将首先包含 custPlayer.js 文件,然后包含构建的video.js文件。
然而问题是,在使用grunt构建video.js包时,我得到 custFunc1 未定义的错误,因此grunt无法创建video.js库。
现在我能够从一位同事那里了解到这一点 / * global custFunc1 * / 在我调用的video.js包中的特定文件的开头 custFunc1 解决了这个问题。 grunt构建成功,它工作正常。
所以我想知道的是:
答案 0 :(得分:1)
你的javascript正在linted作为你的grunt进程的一部分,如果你查看你的项目文件夹的根目录,你应该看到像.jshintrc这样的文件或者这些行的东西(根据linter不同)。
您当前的设置意味着linter一次一个地通过您的.js文件,如果它遇到来自另一个文件的变量或函数,则会抛出您看到的错误。您可以关闭此检查或将custFunc1添加到已知全局变量的数组中。在jshint中你这样做 - https://github.com/gruntjs/grunt-contrib-jshint#jshintrc
{
"globals": {
"custFunc1": true
}
}
全局变量可能已经存在于文件中,所以只需将custFunc1:true添加到它。
哦,回答问题1 - 注释类型语法告诉linter忽略它当前文件的设置,基本上覆盖了.jshintrc文件中的设置。
2 - 是的,它是jshintrc中的一个设置,你在文件本身中添加custFunc1而不是.jshintrc文件中的全局。
3 - 上面提到过。
4 - 从未使用过制造商,但是我相信它的预处理工具类似于