错误:无法解析模块'style-loader'

Rah*_*gli 65 javascript reactjs webpack webpack-style-loader

我正在使用带有webpack的style-loader和反应框架.当我在终端中运行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';
Run Code Online (Sandbox Code Playgroud)

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's 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']
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

Dav*_*uan 69

尝试下面的运行脚本:

npm install style-loader --save

修改webpack配置,添加modulesDirectories字段resolve.

    resolve: {
        extensions: ['', '.js', '.jsx', '.css'],
        modulesDirectories: [
          'node_modules'
        ]        
    }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,我之前安装了 `npm install style-loader css-loader --save-dev` 但由于某种原因它不起作用。 (2认同)

PKA*_*PKA 23

请运行此脚本:

 npm install style-loader css-loader --save
Run Code Online (Sandbox Code Playgroud)

将模块设置如下:

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

它基本上是读取加载器 - 使用babel-loader测试jsx,下一个测试是使用style-loader和css-loader的css文件,它将识别模块.此外,您应该退出npm start,然后运行"npm install"并运行"npm start".希望这应该解决这个问题.


sea*_*cal 11

如果您尝试使用此行导入css文件:

import '../css/style.css';
Run Code Online (Sandbox Code Playgroud)

style-loader在您的webpack配置中添加了.

错误说明:

找不到模块:错误:无法解析模块'style-loader'

名为"style-loader" 的模块未解析.

您需要安装该模块:

$ npm install style-loader --save
Run Code Online (Sandbox Code Playgroud)

或者,如果你使用纱线:

$ yarn add style-loader
Run Code Online (Sandbox Code Playgroud)

然后又跑webpack了.

  • --请保存开发! (2认同)

小智 9

我想补充David Guan所说的内容.在较新版本的Webpack(V2 +)中moduleDirectories已被替换modules.resolve他答案的更新部分如下所示:

resolve: {
    extensions: ['.js', '.jsx', '.css'], //An empty string is no longer required.
    modules: [
      'node_modules'
    ]        
}
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看其官方文档.希望这有助于那里的人.


小智 7

在Webpack 3下,node_module在非标准位置,我必须同时使用resolveresolveLoader配置对象:

resolve: {
  modules: ["build-resource/js/node_modules"]
},
resolveLoader: {
  modules: ["build-resource/js/node_modules"]
},
Run Code Online (Sandbox Code Playgroud)