Ошибка: невозможно разрешить загрузку модуля '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']
}
}
};
Ответы
Ответ 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.