我只是通过坚持常见的结构让我的生活更轻松,所以我开始将chrome浏览器扩展转换为yeoman模板格式 (https://github.com/yeoman/generator-chrome-extension)。
不幸的是,当我尝试添加我需要的第一个基本电源时,它根本不起作用:
https://github.com/Yaffle/EventSource
这是我做的:
向清单添加了事件源,如此
“background”:{ “剧本”:[ “脚本/ chromereload.js” “应用程序/ bower_components / EventSource的/ eventsource.js” ...
添加“new EventSource('http://localhost:9292/updates');”到background.js
除此之外,项目没有受到影响。
每当我用grunt启动项目时,它都无法找到EventSource,因为“'EventSource'未定义。”
将eventsource.js直接添加到我的脚本文件夹并从那里需要它甚至更糟糕的是通过linting eventsource.js文件(完全正常)和中止太多警告(如使用单引号)。
以前整个项目在没有grunt / bower的情况下工作得非常好,现在在我添加第一个真正的代码行之后它甚至都不会启动。对于一个能让你的生活变得如此轻松的工具来说,这是非常令人失望的。
由于eventsource.js中的警告,它是否会失败?在第一种情况下(通过凉亭)它没有说明这一点,所以我不确定。 我可以继续尝试不同的组合,但我显然错过了一个核心概念或类似的东西。
有什么想法吗?
更新
经过多次尝试和放弃后,我找到了神奇的“grunt bowerInstall”命令,自动在模板中添加脚本标签 - 仍无济于事。
我还尝试了一个只有jQuery的新项目(假设这必须工作..),它仍然没有。 既不在popup.js(html模板包含jQuery的地方)也不在后台脚本中(清单包含它)。
我可能会阅读所有这些组件中的每个手册/操作方法,但仍然无处可去。
另一天再试一次:
从一个干净的头脑开始,我今天看了一下,发现显然你必须像在jshint中那样“白名单”像全球一样: http://jshint.com/docs/options/#jquery
仍然不确定这是否真的是最好的方法,因为它似乎非常违反直觉,承诺易于开始使用yeoman / grunt / bower框架。
答案 0 :(得分:0)
EventSource可能是一个全局变量。您可以尝试在.jshintrc文件中将其声明为false,以防止它被覆盖。
"globals" : {
"chrome": true,
"crypto": true,
"EventSource": false
}
看看是否有效。
了解更多有关.jshintrc +全局变量的信息