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

Posted

技术标签:

【中文标题】使用 webpack 和 jshint-loader 时如何摆脱 use-strict 警告?【英文标题】:How to get rid of use-strict warning when using webpack and jshint-loader? 【发布时间】: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*/...

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

谢谢。

【问题讨论】:

【参考方案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
    
;

【讨论】:

以上是关于使用 webpack 和 jshint-loader 时如何摆脱 use-strict 警告?的主要内容,如果未能解决你的问题,请参考以下文章

Webpack配置有一个未知属性'preLoaders'

使用webpack---安装webpack和webpack-dev-server

使用 Webpack 2 和 extract-text-webpack-plugin

webpack优化篇(四十二): 使用高版本的 webpack 和 Node.js

webpack学习笔记 webpack-dev-server插件和HotModuleReplacementPlugin插件使用

使用 webpacker 加载字体和图像