调用在 Javascript 库之外定义的函数
Calling a function defined outside of the Javascript library
我正在 video.js 图书馆工作。我试图修改它,以便它使用自定义播放器而不是 HTML5 播放器。
因此,我将对 play() 等的函数调用替换为对我的自定义播放器的调用(比如 custFunc1())。这些调用在单独的 javascript 文件中定义:custPlayer.js。
所以在我的 index.html 文件中,我将首先包含 custPlayer.js 文件,然后是构建的video.js 文件。
但是问题是,在使用 grunt 构建 video.js 包时,我收到 custFunc1 未定义的错误,因此 grunt 无法创建video.js图书馆。
现在我从一位同事那里得知添加
/* 全局 custFunc1 */
在我调用 custFunc1 的 video.js 包中的特定文件的开头解决了这个问题。 grunt 构建成功并且工作正常。
所以我想知道的是:
你的 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 - 从未使用过制造商,但我相信它的相似之处在于它是一个预处理工具
我正在 video.js 图书馆工作。我试图修改它,以便它使用自定义播放器而不是 HTML5 播放器。 因此,我将对 play() 等的函数调用替换为对我的自定义播放器的调用(比如 custFunc1())。这些调用在单独的 javascript 文件中定义:custPlayer.js。
所以在我的 index.html 文件中,我将首先包含 custPlayer.js 文件,然后是构建的video.js 文件。
但是问题是,在使用 grunt 构建 video.js 包时,我收到 custFunc1 未定义的错误,因此 grunt 无法创建video.js图书馆。
现在我从一位同事那里得知添加 /* 全局 custFunc1 */ 在我调用 custFunc1 的 video.js 包中的特定文件的开头解决了这个问题。 grunt 构建成功并且工作正常。
所以我想知道的是:
你的 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 - 从未使用过制造商,但我相信它的相似之处在于它是一个预处理工具