импорт eslint в webpack: невозможно разрешить путь к модулю
С eslint-import-resolver-webpack я пытаюсь сообщить eslint, что я хочу импортировать файлы, ссылаясь на "ярлык" (например. компоненты/счетчик).
в приведенном ниже примере webpack (v2.2.0-rc.3) строит нормально, но тест терпит неудачу, потому что он "не может разрешить путь к модулю"компоненты/счетчик"". Я получаю эту ошибку также для импорта "компонентов / счетчика / редуктора", поэтому она не ограничивается индексом.
и работает npm run lint
и моя IDE (IntelliJ) дают то же самое ошибка.
следуя документам, я установил следующие конфигурации:
(часть) структура файла:
project-root/
app/
components/
Counter/
index.js
reducer.js
app.js
internals/
config/
.eslintrc
webpack.test.js
package.json
файл: project-root / app / app.js
import Counter from 'components/Counter'
// etc...
выдержка из: project-root / package.в JSON
...
"lint": "npm run lint:eslint -- . ",
"lint:eslint": "eslint -c internals/config/.eslintrc --fix --ignore-path .gitignore --ignore-pattern internals"
...
файл: project-root/config/.eslintrc
{
"parser": "babel-eslint",
"extends": "airbnb",
"env": {
"browser": true,
"node": true,
"mocha": true,
"es6": true
},
"plugins": [
"redux-saga",
"react",
"jsx-a11y"
],
"parserOptions": {
"ecmaVersion": 6,
"sourceType": "module",
"ecmaFeatures": {
"jsx": true
}
},
"settings": {
"import/resolver": {
"webpack": {
"config": "./internals/config/webpack.test.js"
}
}
},
"rules": {
"arrow-parens": [
"error",
"always"
],
"import/imports-first": 0,
"import/newline-after-import": 0,
"import/no-dynamic-require": 0,
"import/no-extraneous-dependencies": 0,
"import/no-named-as-default": 0,
"import/prefer-default-export": 0,
"jsx-a11y/aria-props": 2,
"jsx-a11y/heading-has-content": 0,
"jsx-a11y/href-no-hash": 2,
"jsx-a11y/label-has-for": 2,
"jsx-a11y/mouse-events-have-key-events": 2,
"jsx-a11y/role-has-required-aria-props": 2,
"jsx-a11y/role-supports-aria-props": 2,
"max-len": [
2,
120,
2,
{
"ignoreComments": true,
"ignoreTrailingComments": false,
"ignoreRegExpLiterals": true
}
],
"newline-per-chained-call": [
2,
{
"ignoreChainWithDepth": 4
}
],
"no-console": [
1,
{
"allow": [
"warn",
"error"
]
}
],
"no-use-before-define": [
2,
{
"functions": false,
"classes": true
}
],
"prefer-template": 2,
"class-methods-use-this": 0,
"react/forbid-prop-types": 0,
"react/jsx-uses-vars": 2,
"react/jsx-first-prop-new-line": [
2,
"multiline"
],
"react/jsx-filename-extension": 0,
"react/jsx-no-target-blank": 0,
"react/prefer-stateless-function": 0,
"react/require-extension": 0,
"react/self-closing-comp": 0,
"redux-saga/no-yield-in-race": 2,
"redux-saga/yield-effects": 2,
"semi": [
2,
"never"
]
}
}
и: project-root/internals/config / webpack.тест.js:
const webpack = require('webpack')
module.exports = {
devtool: 'inline-source-map',
module: {
loaders: [
{ test: /.json$/, loader: 'json-loader' },
{ test: /.css$/, loader: 'null-loader' },
{ test: /.js$/,
loader: 'babel',
exclude: [/node_modules/],
},
{ test: /.jpe?g$|.gif$|.png$|.svg$/i,
loader: 'null-loader',
},
],
},
plugins: [
new webpack.DefinePlugin({
'process.env': {
NODE_ENV: JSON.stringify(process.env.NODE_ENV),
},
}),
],
resolve: {
modules: [
'app',
'node_modules',
],
},
}
Примечание: я также попытался указать на файл, который экспортирует только объект resolve. Тот же вещь:
module.exports = {
resolve: {
modules: [
'app',
'node_modules',
],
}
}
1 ответов
казалось, что мои зависимости нуждаются в обновлении...
есть довольно много плагинов, конфиги и т. д., необходимых для тщательного процесса пылеобразования..
-- edit --
вот выдержка из зависимостей моего проекта. Здесь могут быть некоторые пакеты, которые не нужны, я удалил только те из них, которые, я уверен, не оказывают влияния.
обратите внимание, что фронтальная Земля движется как гепард на 6-й передаче, поэтому версии могут получить скоро устареет. В любом случае, на данный момент (февраль 2017) это рабочая конфигурация.
"dependencies": {
"babel-polyfill": "6.16.0",
"react": "15.4.2",
"react-dom": "15.4.2",
},
"devDependencies": {
"babel-cli": "6.18.0",
"babel-core": "6.21.0",
"babel-eslint": "7.1.0",
"babel-loader": "6.2.10",
"babel-plugin-react-transform": "2.0.2",
"babel-preset-es2015": "6.18.0",
"babel-preset-react": "6.16.0",
"babel-preset-stage-3": "6.17.0",
"babel-register": "6.22.0",
"eslint": "3.13.1",
"eslint-config-airbnb": "14.0.0",
"eslint-import-resolver-webpack": "0.8.0",
"eslint-plugin-import": "2.2.0",
"eslint-plugin-jsx-a11y": "3.0.2",
"eslint-plugin-react": "6.9.0",
"eslint-plugin-redux-saga": "0.1.5",
"webpack": "2.2.0",
"webpack-dev-middleware": "1.9.0",
"webpack-hot-middleware": "2.14.0"
}