运行grunt serve后,Bower抛出jquery“未注入”的警告

3

最近我需要克隆一个项目并重建bower包。我相信jQuery已经更新了,现在会抛出一个警告:

警告:
请到“app/bower_components/jquery”中查找所需文件,然后在您的文件中手动包含它。

我已经这样做了。一切正常运行。然而,每次我通过grunt serve启动时还是会抛出警告?

jquery was not injected in your file.

我该如何解决这个错误?这个错误会影响grunt构建吗?我确定这个警告可能是无害的,但是总是看到它让人感到不安。

主要的 .bower.json 文件

{
  "name": "jordan",
  "version": "0.0.0",
  "dependencies": {
    "angular": "1.2.6",
    "json3": "~3.2.6",
    "es5-shim": "~2.1.0",
    "angular-resource": "1.2.6",
    "angular-cookies": "1.2.6",
    "angular-sanitize": "1.2.6",
    "angular-route": "1.2.6",
    "jquery-ui": "~1.10.3"
  },
  "devDependencies": {
    "angular-mocks": "1.2.6",
    "angular-scenario": "1.2.6"
  }
}

图片说明

针对jquery的.bower.json文件

{
  "name": "jquery",
  "version": "2.1.0",
  "ignore": [
    "**/.*",
    "build",
    "speed",
    "test",
    "*.md",
    "AUTHORS.txt",
    "Gruntfile.js",
    "package.json",
    "bower.json"
  ],
  "dependencies": {
    "sizzle": "1.10.16"
  },
  "devDependencies": {
    "requirejs": "~2.1.8",
    "qunit": "~1.12.0",
    "sinon": "~1.7.3"
  },
  "keywords": [
    "jquery",
    "javascript",
    "library"
  ],
  "homepage": "https://github.com/jquery/jquery",
  "_release": "2.1.0",
  "_resolution": {
    "type": "version",
    "tag": "2.1.0",
    "commit": "cac43f3ef791b7e68c1917a734fb92e04450c111"
  },
  "_source": "git://github.com/jquery/jquery.git",
  "_target": ">=1.6",
  "_originalSource": "jquery"
}
3个回答

12

您可以通过更改项目中的bower.json并覆盖一些存在问题的包来解决这个问题。

"overrides": {
  "jquery": {
    "main": "./dist/jquery.js"
  }
}

您可以在https://github.com/bower/bower/issues/585中了解更多相关内容。

不过,看起来当前版本的JQuery符合Bower规则。


2
这是一个有用的答案! - badsyntax

4
根据相关的Github问题(链接在此处:https://github.com/stephenplusplus/grunt-bower-install/issues/55),解释如下:
这不是grunt-bower-install的错误,而是jQuery没有遵守Bower的规则。如果一个Bower包没有指定main属性,那么这个工具无法使用。和其他没有指定的包一样,解决方法是手动将文件引用到HTML文件中,就像以前一样。
很抱歉,我刚刚也遇到了同样的问题 :(

1
那么,没有已知的方法可以“抑制”这些烦人的警告吗? - jmazin

0
通常,如果您遇到此错误,那是因为您使用的任何bower组件的作者要么没有在组件中包含bower.json文件,要么没有在bower.json文件夹中定义“main”属性。 如果该组件正在积极维护,则应打开一个github问题,要求在组件中提供适当的bower.json文件。以下是一个真实世界的例子...

https://github.com/CreateJS/SoundJS/issues/76


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接