使用webpack和jshint-loader时如何摆脱use-strict警告?

时间:2015-03-11 14:25:36

标签: javascript jshint webpack use-strict

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

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

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

  警告在./js/main.js中   jshint导致错误     使用"使用strict"的函数形式。 @ line 1 char 1       "使用严格的&#34 ;;

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

在文件中添加'use strict'也无济于事。

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

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

感谢。

4 个答案:

答案 0 :(得分:2)

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

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

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

jshint的配置部分:http://jshint.com/docs/如果需要,可以提供更多信息。

答案 1 :(得分:1)

事实证明并非如此简单。

我发现使用eslint的解决方案很棒。 以下是示例项目:https://github.com/kriasoft/react-starter-kit/

答案 2 :(得分:1)

您必须将jshint全局使用"use strict";提示设置到您的文件中,您可以将jshint options用于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
    }
};

答案 3 :(得分:0)

我解决了这个问题,只需添加像@ AR7这样的globalstrict: true

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

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

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

问题是Webpack需要知道JSHint配置check here how they setup the jshint-loader

jshint: { ... }