【问题标题】:Chrome extension, Grunt+Bower (from yeoman template) won't load pluginsChrome 扩展,Grunt+Bower(来自 yeoman 模板)不会加载插件
【发布时间】:2015-09-02 23:21:03
【问题描述】:

虽然我坚持使用通用结构让我的生活更轻松,但我开始将 chrome 浏览器扩展转换为 yeoman 模板格式 (https://github.com/yeoman/generator-chrome-extension)。

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

https://github.com/Yaffle/EventSource

这是我所做的:

  1. 使用 yeoman 助手设置新扩展
  2. $ bower install EventSource --save
  3. 像这样将事件源添加到清单中

    “背景”:{ “脚本”:[ “脚本/chromereload.js”, "app/bower_components/EventSource/eventsource.js", ...

  4. 添加“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 框架。

【问题讨论】:

  • 几个小时后,我仍然没有接近解决方案,但失去了任何希望这件事可以工作......请参阅上面的更新。
  • 不是真正的解决方案,但发现了无法编译的问题:当我从 grunt debug 中删除“jshint”任务时,它起作用了......
  • 我确实添加了另一个可能的步骤来接近解决方案,但仍然不确定这是否是“应该如何完成”。
  • 你想使用来自chromereload.js的那个吗?
  • 是的 chromereload 是项目的一部分(随模板一起提供)。

标签: google-chrome-extension gruntjs yeoman bower


【解决方案1】:

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

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

看看这是否有效。

阅读更多关于 .jshintrc + 全局变量的信息:JSHint and jQuery: '$' is not defined

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多