Как избавиться от строгого предупреждения об использовании при использовании webpack и jshint-loader?

У меня есть проект webpack, связанный с jshint-loader, который определяется так:

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

и когда я запускаю webpack-dev-server, я получаю следующее предупреждение во всех своих файлах:

ПРЕДУПРЕЖДЕНИЕ в ./js/main.js jshint приводит к ошибкам. Используйте функциональную форму «use strict». @ строка 1 char 1 "использовать строго";

Я попытался использовать параметр "strict": false в моем файле конфигурации под jshint, но это не помогло.

Добавление 'use strict' в файлы тоже не помогло.

Единственное решение, которое я нашел, это добавить /*jshint globalstrict: true*/ в каждый файл js в моем проекте...

У кого-нибудь есть решение для этого в глобальном масштабе?

Спасибо.


person Yoni Dabush    schedule 11.03.2015    source источник


Ответы (4)


Вы можете создать файл с именем .jshintrc, который определяет глобальные настройки, которые вы хотите использовать в jshint.

Здесь показаны все возможные настройки для файла https://github.com/jshint/jshint/blob/master/examples/.jshintrc

Вы просто создадите .jshintrc и установите в нем globalstrict: true, а не в каждом файле js.

Раздел конфигурации jshint здесь: http://jshint.com/docs/ содержит дополнительную информацию, если она вам нужна. .

person m0meni    schedule 11.03.2015
comment
Мне известен вариант файла .jshintrc, и я готов использовать такой файл, но веб-пакеты его игнорируют. Мне нужно как-то сообщить об этом webpack. - person Yoni Dabush; 11.03.2015
comment
github.com/webpack/jshint-loader/pull/8 это может иметь что вы ищете. - person m0meni; 11.03.2015

оказывается это не так просто.

Вместо этого я нашел отличное решение, используя eslint. Вот пример проекта: https://github.com/kriasoft/react-starter-kit/

person Yoni Dabush    schedule 19.03.2015

вы должны установить подсказку jshint о том, что вы используете "use strict"; global в своих файлах, вы можете использовать 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
    }
};
person ahmed hamdy    schedule 19.06.2016

Я решаю эту проблему, просто добавляя 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
person Yordis Prieto Lazo    schedule 27.04.2015