Подтвердить что ты не робот

Ошибка: невозможно разрешить загрузку модуля 'style-loader'

Я использую стиль-загрузчик с webpack и средой реагирования. Когда я запускаю webpack в терминале, я получаю Module not found: Error: Cannot resolve module 'style-loader' в файле import.js, хотя я правильно указал путь к файлу.

import '../css/style.css';
import React from 'react';
import ReactDOM from 'react-dom';
import jQuery from 'jquery';
import TopicsList from '../components/topic-list.jsx';
import Layout from '../components/layout.jsx';

webpack.config.js:

var webpack = require('webpack');
var path = require('path');

var BUILD_DIR = path.resolve(__dirname, 'build');
var APP_DIR = path.resolve(__dirname, 'build');

module.exports = {
    entry: [
      // Set up an ES6-ish environment
      'babel-polyfill',

      // Add your application scripts below
      APP_DIR + '/import.js'
    ],
    output: {
        path: BUILD_DIR,
        filename: 'bundle.js'
    },
    module: {
        loaders: [
            {
                test: /\.jsx?$/,
                loader: 'babel',

                exclude: /node_modules/,
                query: {
                    plugins: ['transform-runtime'],
                    presets: ['es2015', 'stage-0', 'react']
                }
            },
            { test: /\.css$/, loader: "style-loader!css-loader" }
        ],
        resolve: {
            extensions: ['', '.js', '.jsx', '.css']
        }
    }
};
4b9b3361

Ответ 1

Попробуйте запустить script ниже:

npm install style-loader --save

Измените конфигурацию webpack, добавьте поле modulesDirectories в resolve.

    resolve: {
        extensions: ['', '.js', '.jsx', '.css'],
        modulesDirectories: [
          'node_modules'
        ]        
    }

Ответ 2

Запустите этот script:

 npm install style-loader css-loader --save

Установите свой модуль следующим образом:

module: {
  loaders: [
    {
      test: /\.jsx?$/,
      loader: 'babel-loader',
      include: path.join(_dirname, 'app')
    },
    {
      test: /\.css$/,
      loader: 'style-loader!css-loader'
    }
  ],
  resolve: {
      extensions: ['', '.js', '.jsx', '.css']
  }
}

Он в основном читает как для загрузчиков - тестовый jsx с помощью babel-loader, а следующий тест - это css файл с использованием загрузчика стиля и css-loader, который распознает модули. Кроме того, вы должны выйти из запуска npm и запустить "npm install" и запустить "npm start". Надеюсь, это должно позаботиться о проблеме.

Ответ 3

Если вы попытаетесь импортировать файл css с этой строкой:

import '../css/style.css';

и добавили style-loader в вашу конфигурацию webpack.

Ошибка:

Модуль не найден: Ошибка: невозможно разрешить загрузку модуля '

модуль с именем "стиль-загрузчик" не разрешен.

Вам необходимо установить этот модуль с помощью

$ npm install style-loader --save

Или, если вы используете пряжу:

$ yarn add style-loader

Затем запустите webpack снова.

Ответ 4

Я хотел добавить к тому, что сказал Дэвид Гуан. В более новых версиях Webpack (V2+) moduleDirectories был заменен на modules. Обновленная часть resolve его ответа будет выглядеть следующим образом:

resolve: {
    extensions: ['.js', '.jsx', '.css'], //An empty string is no longer required.
    modules: [
      'node_modules'
    ]        
}

Для получения дополнительной информации вы можете проверить их официальную документацию. Надеюсь, это поможет кому-то там.

Ответ 5

В Webpack 3 с node_module в нестандартном месте мне приходилось использовать объекты конфигурации resolve и resolveLoader :

resolve: {
  modules: ["build-resource/js/node_modules"]
},
resolveLoader: {
  modules: ["build-resource/js/node_modules"]
},

Ответ 6

Если вы node_modules находятся в том же каталоге, что и в файле конфигурации webpack, вы можете просто добавить context: __dirname.

module.exports = {
    context: __dirname,
    entry: [
    ...

(работает как в webpack 1 и 2)

Ответ 7

Я использую Windows и сделал все, но ничего не получалось. Оказалось, консоли не было достаточно разрешений. Итак, после запуска в режиме администратора я снова вошел в

npm install

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