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