【问题标题】:Meanjs grunt build jquery $ is not definedMeanjs grunt build jquery $ 未定义
【发布时间】:2015-11-28 22:30:32
【问题描述】:

我开发了一个有点大的 meanjs 应用程序,当我运行 grunt build 时,它给了我如下 Jquery 问题。

我也使用了 Jquery 自调用方法,如下所示。但它也给了我错误。

(function ($){
    $('#renew').modal('hide');
})(jQuery);

由于这些问题 'public/dist/application.min.js' 没有创建。

我可以看到 jquery 已经加载到浏览器中,如下所示。

【问题讨论】:

  • 在执行这些语句之前检查 jQuery 是否包含。这说明 jQuery 还没有被包含进来。
  • @Robbin'Roboroads'Schepers 请查看我编辑的问题,Jquery.js 文件已正确加载。
  • 可能还是这样,我可以看到您在 jquery 包含之前运行 javascript。如果将 jquery include 标签直接放在<head> 标签下会发生什么?
  • @Robbin'Roboroads'Schepers 我觉得这个问题与 jquery 加载顺序无关。即使在当前实现中,Jquery 函数也可以在浏览器上正常工作。但是当我运行上面的 grunt build 命令时,会显示错误,它会破坏 MEAN JS 应用程序的 minify js 文件创建。

标签: jquery gruntjs meanjs


【解决方案1】:

我不认为这是一个错误。事实上,我认为这是 jshint 发出的警告,因为您使用的是 'use strict'; 并且它不知道 $ 已定义(在 jquery 文件中)。

您可以像这样在.jshintrc 文件中将$ 添加到globals

{
    "globals" : {
        "$": false
    }
}

或者在所有使用$的js文件中加入下面一行

/*global $:false */

附带说明一下,即使出现警告,您也应该能够通过使用 grunt --force 来构建它,但您仍然应该按照上面的说明进行修复。

【讨论】:

  • 它对我有用。但即使所有这些警告都已修复,public/dist/application.min.js 仍然无法构建。我使用了 grunt --force 构建。但我的控制台仍然显示后端 Nodejs 警告。
  • 这很奇怪。您必须仔细检查您的 gruntfile 以查找您可能已更改并忘记更新的文件路径。
猜你喜欢
  • 2015-05-22
  • 2013-12-13
  • 1970-01-01
  • 1970-01-01
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 2015-09-21
  • 1970-01-01
相关资源
最近更新 更多