Как да се отървем от стриктното предупреждение при използване на webpack и jshint-loader?

Имам проект за уеб пакет, свързан с 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 и съм готов да използвам такъв файл, но webpacks го игнорира. Трябва по някакъв начин да кажа на 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"; глобално във вашите файлове, можете да използвате 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
    }
};
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