【问题标题】:How to get rid of use-strict warning when using webpack and jshint-loader?使用 webpack 和 jshint-loader 时如何摆脱 use-strict 警告?
【发布时间】:2015-05-13 09:31:11
【问题描述】:

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

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

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

./js/main.js 中的警告 jshint 导致错误 使用“use strict”的函数形式。 @ 第 1 行字符 1 “使用严格”;

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

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

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

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

谢谢。

【问题讨论】:

    标签: javascript jshint webpack use-strict


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我知道 .jshintrc 文件选项,我愿意使用这样的文件,但 webpacks 忽略了它。我需要以某种方式告诉 webpack。
    • github.com/webpack/jshint-loader/pull/8 这可能有你要找的东西。
    【解决方案2】:

    原来事情没那么简单。

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

    【讨论】:

      【解决方案3】:

      我只需添加globalstrict: true 就像@AR7 一样解决这个问题。

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

      关于你在评论中的问题,你可以这样做:

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

      问题是Webpack需要知道JSHint的配置check here how they setup the 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
      

      【讨论】:

        【解决方案4】:

        您必须将提示设置为jshint,您在文件中使用"use strict"; 全局,您可以在webpack 配置文件中使用jshint options

        webpack.config.js 文件将是:

        module.exports = {
            //...
            module: {
              //...
              postLoaders: [
               {
                   test: /\.js$/,
                   exclude: /node_modules/,
                   loader: 'jshint-loader'
               }
              ] 
            },
            jshint: {
               strict: "global" // <-- adding strict mode option as global
            }
        };
        

        【讨论】:

          猜你喜欢
          • 2018-10-02
          • 2017-09-17
          • 2015-01-22
          • 2012-02-15
          • 1970-01-01
          • 2016-02-04
          • 2017-01-25
          • 1970-01-01
          相关资源
          最近更新 更多