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

У меня есть проект webpack, связанный с загрузчиком jshint, который определяется следующим образом:

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

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

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

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

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

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

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

Благодарю.

4 ответа

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

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

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

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

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

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

Я решаю эту проблему, просто добавив globalstrict: true как @AR7.

следующая проблема была исправлена: https://github.com/webpack/jshint-loader/issues/13

О вашей проблеме в комментарии вы можете сделать что-то вроде этого:

Я решил поставить конфиг jshint в package.jsonеще один способ настройки JSHint, чтобы было проще читать конфигурацию, но если вы хотите просто создать новую конфигурацию, например, jshint: { ... } или прочитайте из файла.jshint и преобразуйте его в json.

Проблема в том, что Webpack нужно знать, как проверить конфигурацию JSHint, как они настраивают загрузчик jshint.

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

Вы должны установить подсказку 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
    }
};
Другие вопросы по тегам