1

我有一个与 jshint-loader 连接的 webpack 项目,它的定义如下:

postLoaders: [
       {
           test: /\.js$/,
           exclude: /node_modules/,
           loader: 'jshint-loader'
       }
],

当我运行 webpack-dev-server 时,我的所有文件中都会收到以下警告:

WARNING in ./js/main.js jshint 导致错误 使用“use strict”的函数形式。@ line 1 char 1 "使用严格";

我尝试"strict": false在 jshint 下的配置文件中使用该选项,但没有帮助。

添加'use strict'文件也没有帮助。

我发现的唯一解决方案是/*jshint globalstrict: true*/在我的项目中的每个 js 文件中添加......

有人在全球范围内有解决方案吗?

谢谢。

4

4 回答 4

2

您可以创建一个名为 .jshintrc 的文件,该文件定义您希望 jshint 使用的全局设置。

这显示了文件https://github.com/jshint/jshint/blob/master/examples/.jshintrc的所有可能设置

您只需创建一个 .jshintrc 并globalstrict: true在其中设置而不是在每个 js 文件中进行设置。

jshint 的配置部分在这里:http://jshint.com/docs/如果您需要它有更多信息。

于 2015-03-11T14:28:57.153 回答
1

事实证明这并不是那么简单。

我找到了一个很好的解决方案,而是使用 eslint。这是示例项目:https ://github.com/kriasoft/react-starter-kit/

于 2015-03-19T13:03:48.873 回答
1

您必须在文件中设置jshint使用"use strict";全局的提示,您可以在配置文件中使用jshint选项。webpack

webpack.config.js文件将是:

module.exports = {
    //...
    module: {
      //...
      postLoaders: [
       {
           test: /\.js$/,
           exclude: /node_modules/,
           loader: 'jshint-loader'
       }
      ] 
    },
    jshint: {
       strict: "global" // <-- adding strict mode option as global
    }
};
于 2016-06-19T00:03:30.270 回答
0

我解决了这个问题,只需添加globalstrict: true@AR7 之类的。

下一个问题已修复:https ://github.com/webpack/jshint-loader/issues/13

关于评论中的问题,您可以执行以下操作:

我决定将 jshint 配置放入package.json另一种设置 JSHint 的方法中,这样可以更容易地读取配置,但是如果您只想在那里创建一个新配置,jshint: { ... }或者从 .jshint 文件中读取并将其转换为 json。

问题是 Webpack 需要知道 JSHint 配置检查这里他们如何设置 jshint-loader

var path = require('path');
var pkg = require(path.resolve(__dirname, './package.json'));

....

module: {
  preLoaders: [{
    test: /\.js$/,
    loaders: [
      'jshint'
    ],
    include: [
      path.resolve(__dirname, 'src')
    ]
  }]
},
jshint: pkg['jshintConfig'] // This is the actually fix
于 2015-04-27T17:21:49.110 回答