Jshint: JSHint 将其包含为 requirejs 模块时抛出错误

创建于 2016-01-21  ·  5评论  ·  资料来源: jshint/jshint

你好,

作为我正在开发的 POC 的一部分,我准备了一个小示例,它可以让我的 angular 应用程序与 requirejs 一起使用。 现在我打算集成JsHint。 唯一的要求是没有nodejs。

我已经从发行版的 dist 文件夹中取出了 js 文件并将其作为 require 模块加载。 但是这样做时,我收到以下错误
jshint_error

未捕获的类型错误:_.each 不是函数

我通过 require 加载的所有其他模块都很好,比如 bootstrap 和 angular。 我试过包含 underscore.js 并在 jshint 之前加载它,但无济于事。

这是 jshint 的错误还是我做错了什么。 下面是我的 requirejs 引导代码

需要.配置({
baseUrl: '脚本',
路径:{
'jshint':'lib/jshint/jshint',
'角度':'lib/angular/angular.min',
'角度路线':'lib/angular/angular-route.min'

},
shim: {
    'app': {
        deps: ['jshint','angular', 'angular-route']
    },
    'angular-route': {
        deps: ['angular']
    }
}

});

要求
(
[
'应用程序'
],
功能(应用程序)
{
angular.bootstrap(document, ['app']);
}
);

最有用的评论

不知何故,requirejs(或者一般来说可能是 AMD)的存在使得加载 lodash 失败。
它在 v2.6.3 中有效,但在 v2.7.0 中开始失败

我有一个示例显示它的示例 v2.9.3 。 来自开发者工具的错误:

VM104 jshint.js:15777 
Uncaught TypeError: _.each is not a function
  require.14.lodash @ VM104 jshint.js:15777
  s @ VM104 jshint.js:6
  (anonymous function) @ VM104 jshint.js:6
  ...

相比之下,

任何的想法?

所有5条评论

我希望下划线不会被标记为 jshint 的依赖项。 此外,现代 jshint 正在使用 lodash,因此 lodash 可能存在一些兼容性问题,尽管我对此表示怀疑。

只是随地吐痰

我遇到了同样的问题......任何解决方法?

不知何故,requirejs(或者一般来说可能是 AMD)的存在使得加载 lodash 失败。
它在 v2.6.3 中有效,但在 v2.7.0 中开始失败

我有一个示例显示它的示例 v2.9.3 。 来自开发者工具的错误:

VM104 jshint.js:15777 
Uncaught TypeError: _.each is not a function
  require.14.lodash @ VM104 jshint.js:15777
  s @ VM104 jshint.js:6
  (anonymous function) @ VM104 jshint.js:6
  ...

相比之下,

任何的想法?

在 SystemJS 中,您需要按照https://github.com/systemjs/systemjs/blob/master/docs/module-formats在元数据中将格式指定为global (而不是 AMD 或 CommonJS) 。 md#globals

SystemJS.config({
    baseURL: './js',
    defaultJSExtensions: true,
    paths: {
        'jquery': './js/vendor/jquery/jquery-3.2.1.min.js',
        // ...
    },
    meta: {
        './js/vendor/codemirror/addon/lint/jshint.js': { format: 'global' }
    }
});
SystemJS.import('./js/app.js').then(function (app) {
    // ...
})

请注意,Webpack 会自动检测格式。

希望这对 requireJS 有帮助。

不知何故,requirejs(或者一般来说可能是 AMD)的存在使得加载 lodash 失败。
它在 v2.6.3 中有效,但在 v2.7.0 中开始失败

我有一个示例显示它的示例 v2.9.3 。 来自开发者工具的错误:

VM104 jshint.js:15777 
Uncaught TypeError: _.each is not a function
  require.14.lodash @ VM104 jshint.js:15777
  s @ VM104 jshint.js:6
  (anonymous function) @ VM104 jshint.js:6
  ...

相比之下,

任何的想法?

在 2.6.3 之后,它从 Underscore 变为 Lodash。
检查'var _ = require("underscore");' 在 2.6.3 和 'var _ = require("lodash");' 在 2.12.10

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

arian picture arian  ·  7评论

nzakas picture nzakas  ·  10评论

fbarda picture fbarda  ·  5评论

NemoStein picture NemoStein  ·  7评论

derekdata picture derekdata  ·  11评论