2017-01-11 2 views
4

С eslint-import-resolver-webpack Я пытаюсь сообщить eslint, что я хочу импортировать файлы, ссылаясь на «ярлык» (например, компоненты/счетчик) ,eslint import in webpack: невозможно разрешить путь к модулю

В приведенном ниже примере 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 

Файл: проект корневой/приложение/app.js

import Counter from 'components/Counter' 
// etc... 

Отрывок из: проекта корня/package.json

... 
"lint": "npm run lint:eslint -- . ", 
"lint:eslint": "eslint -c internals/config/.eslintrc --fix --ignore-path .gitignore --ignore-pattern internals" 
... 

Файл: проект-корень/конфигурации/.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" 
    ] 
    } 
} 

И: проект-корневые/Внутрикорпусные/Config/webpack.test.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', 
    ], 
    }, 
} 

Примечание: Я также попытался указывая к файлу, который экспортирует только объект разрешения. То же самое:

module.exports = { 
    resolve: { 
    modules: [ 
     'app', 
     'node_modules', 
    ], 
    } 
} 

ответ

0

Это казалось моя зависимость, необходимые обновления ...

Там довольно много плагин, конфига и т.д., необходимые для тщательного процесса пылеобразования ..

- изменить - -

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

Обратите внимание, что передняя часть земли движется как гепард на 6-й передаче, поэтому версии могут скоро устареть. Во всяком случае, на данный момент (feb 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" 
    } 
+0

Привет, У меня такая же проблема, как и вы, но все мои зависимости актуальны. Есть идеи? – Zephir77167

+0

@ Zephir77167 сначала убедитесь, что у вас нет предупреждений/ошибок. Иногда некоторые peerDependencies устарели. Вы будете уведомлены об этом с помощью предупреждения. Если все в порядке, попробуйте удалить папку 'node_modules' и переустановить все это с помощью' npm install'. Если это не исправить, в зависимости от вашего стека, может потребоваться использование очень новой версии пакета, RC или даже бета-пакета. Проверьте вкладку github release, чтобы узнать, есть ли что-то более новое. И затем, снова обновляйте зависимости соответственно – publicJorn

+0

Привет, я нашел источник своей проблемы ... Мне пришлось использовать path.resolve в .eslintrc> settings> import/resolver> webpack> config! – Zephir77167

Смежные вопросы