Chrome扩展程序,Grunt + Bower(来自yeoman模板)不会加载插件

时间:2015-06-17 15:46:57

标签: google-chrome-extension gruntjs yeoman bower

我只是通过坚持常见的结构让我的生活更轻松,所以我开始将chrome浏览器扩展转换为yeoman模板格式 (https://github.com/yeoman/generator-chrome-extension)。

不幸的是,当我尝试添加我需要的第一个基本电源时,它根本不起作用:

https://github.com/Yaffle/EventSource

这是我做的:

  1. 使用yeoman帮助程序设置新扩展程序
  2. $ bower安装EventSource --save
  3. 向清单添加了事件源,如此

    “background”:{     “剧本”:[       “脚本/ chromereload.js”       “应用程序/ bower_components / EventSource的/ eventsource.js”       ...

  4. 添加“new EventSource('http://localhost:9292/updates');”到background.js

  5. 除此之外,项目没有受到影响。

    每当我用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框架。

1 个答案:

答案 0 :(得分:0)

EventSource可能是一个全局变量。您可以尝试在.jshintrc文件中将其声明为false,以防止它被覆盖。

"globals" : {
   "chrome": true,
   "crypto": true,
   "EventSource": false
}

看看是否有效。

JSHint and jQuery: '$' is not defined

了解更多有关.jshintrc +全局变量的信息