2016-06-09 47 views
0

我正在编写库。我试图修改它,以便它使用自定义播放器而不是HTML5播放器。 所以,我用custFunc1()与我的自定义播放器的呼叫(play()等)替换函数调用。这些呼叫在单独的文件中定义:custPlayer.js调用在Javascript库之外定义的函数

所以在我的index.html文件,我将首先包括custPlayer.js文件,然后内置文件。

但问题是,当使用grunt构建video.js包时,我得到的错误是未定义,因此grunt无法创建video.js库。

现在,我能够从一个同事说在包中的特定文件的开头添加 /*全球custFunc1 */ 从那里我打电话custFunc1解决了问题找出来。咕噜生成成功,它工作正常。

所以我想知道的是:

  1. 如何,这实际上解决这个问题,因为这是完全一样的JavaScript注释,它是如何区别对待这一点,明白这表明函数定义将出现在库之外?

  2. 是字全球 JavaScript中的某种关键字?

  3. 除了我提到的之外,还有其他方法可以实现这一点吗?

  4. 稍微有点不同,我想问一下是否等于

回答

1

您的JavaScript正在linted为您咕噜过程的一部分,如果你看一下你的项目文件夹的根目录,你应该可以看到.jshintrc或类似的规定文件(不同,这取决于棉短绒)。

您的当前设置意味着linter一次只能处理一个.js文件,如果它遇到来自其他文件的变量或函数,它会抛出错误。您可以关闭此检查或将custFunc1添加到已知全局变量的数组中。在jshint你做它像这样 - https://github.com/gruntjs/grunt-contrib-jshint#jshintrc

{ 
    "globals": { 
    "custFunc1": true 
    } 
} 

的全局变量可能已经存在的文件中,因此只需添加custFunc1:忠实于它。

哦,并回答问题1 - 注释类型语法告诉linter忽略它当前文件的设置,基本上覆盖了.jshintrc文件中的设置。

2 - 是的,它是jshintrc中的一个设置,并且您将custFunc1添加到文件本身而不是全局中。jshintrc文件。

3 - 上面提到。

4 - 从未使用的制造商,但是我相信它的类似之处在于它的预处理工具

相关问题