Ошибка: Webpack 2 не может разрешить загрузчик babel

Я сталкиваюсь со следующим сообщением об ошибке при попытке настроить webpack 2 с помощью babel:

ERROR in Entry module not found: Error: Can't resolve 'babel-loader' in 'path_to_project_dir'

Файл конфигурации, следующий за документами webpack 2:

const path = require('path')

const config = {
  entry: './src/index.js',
  output: {
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        exclude: [
          path.resolve(__dirname, 'node_modules')
        ],
        loader: 'babel-loader',
        options: {
          presets: ["es2015"]
        },
      }
    ]
  },
  resolve: {
    modules: [
      'node_modules',
      path.resolve(__dirname, 'src')
    ],
    extensions: ['.js', '.json', '.jsx'],
  }
}

module.exports = config

У меня есть следующие зависимости разработчика в моем packages.json:

"devDependencies": {
  "babel-core": "^6.24.0",
  "babel-loader": "^6.4.0",
  "babel-preset-es2015": "^6.24.0",
  "path": "^0.12.7",
  "webpack": "^2.2.1",
  "webpack-dev-server": "^2.4.1"
},

Мои версии node и npm:

node 7.7.1
npm 4.4.1

Моя ОС — macOS Sierra.

Что может быть источником этого сообщения об ошибке и как его решить. Я перепробовал множество руководств и сообщений в блогах, чтобы найти решение, но ни одно из них не сработало.


person Krisztian Balla    schedule 14.03.2017    source источник
comment
вы запустили npm install правильно?   -  person Adam Wolski    schedule 14.03.2017
comment
Да, я сделал, я только что создал зависимости, используя yarn add *dependency* --dev Странная вещь: теперь я удалил node_modules и yarn.lock, затем запустил команду yarn, и теперь это работает. Мне все еще было бы любопытно, что могло вызвать эту проблему с зависимостью, чтобы избежать ее в будущем.   -  person Krisztian Balla    schedule 14.03.2017
comment
@AdamWolski спасибо за идею переустановить модули узла, вероятно, это проблема с зависимостями, сделал то же самое в других webpack 2 установках, которые я пробовал, и у меня была такая же проблема, и таким образом они тоже работают.   -  person Krisztian Balla    schedule 14.03.2017
comment
Мне удалось определить источник этой ошибки, скорее всего, это не связано с webpack 2 или babel, на самом деле это происходит только при использовании терминала пакета term3 редактора атома. Почему-то он неправильно устанавливает модули npm. При использовании терминала по умолчанию он работает   -  person Krisztian Balla    schedule 14.03.2017
comment
запустить npm install babel-loader -D снова   -  person Alex Montoya    schedule 07.08.2018


Ответы (1)


Я исследовал каталог node_modules и обнаружил отсутствие многих зависимостей. Я удалил каталог node_modules и файл yarn.lock и в новом окне терминала запустил команду yarn.

Все заработало, установил все зависимости, webpack 2 и babel заработали как надо.

Поскольку изначально я устанавливал модули npm с помощью atom editor's term3 terminal, я пытался сделать там ту же переустановку, однако это привело к отсутствующим зависимостям, как и изначально.

Таким образом, ошибка была вызвана пакетом term3 атома

Решение: используйте стандартный терминал и НЕ используйте терминал, предоставляемый пакетом term3 атома.

person Krisztian Balla    schedule 14.03.2017
comment
Мне также пришлось в конечном итоге обновить npm до последней версии, хотя это, похоже, не связанная проблема. - person Damien Bezborodow; 25.01.2018