"你可能需要一个合适的加载器来处理这个文件类型"与Webpack和CSS

rgv*_*tim 11 css webpack webpack-style-loader css-loader

我是一个新的webpack,我已经能够把它打包我的javascript,但CSS让我望而却步.我一直得到一个:

"你可能需要一个合适的加载器来处理这个文件类型"

一个是我的css文件的第一行.CSS文件很简单:

body {
    color:red
}
Run Code Online (Sandbox Code Playgroud)

webpack.config.js看起来像这样:

module.exports = {
    debug: true,
    entry: [ './sdocs.js' ],
    output: {
        filename: './[name].bundle.js'
    },
    loaders: [
        { test: /\.css$/, loader: "style-loader!css-loader" },
    ],
}
Run Code Online (Sandbox Code Playgroud)

sdocs.js也很简单,看起来像这样:

require('./sdocs.css');
Run Code Online (Sandbox Code Playgroud)

最后运行webpack的结果如下所示:

ERROR in ./sdocs.css
Module parse failed: C:\Users\Tim\PhpstormProjects\xxx\sdocs.css
Unexpected token (1:5)
You may need an appropriate loader to handle this file type.
SyntaxError: Unexpected token (1:5)
at Parser.pp.raise (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:923:13)
at Parser.pp.unexpected (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:1490:8)
at Parser.pp.semicolon (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:1469:73)
at Parser.pp.parseExpressionStatement (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:1994:8)
at Parser.pp.parseStatement (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:1772:188)
at Parser.pp.parseTopLevel (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:1666:21)
at Parser.parse (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:1632:17)
at Object.parse (C:\Users\Tim\PhpstormProjects\xxx\node_modules\acorn\dist\acorn.js:885:44)
at Parser.parse (C:\Users\Tim\PhpstormProjects\xxx\node_modules\webpack\lib\Parser.js:902:15)
at DependenciesBlock.<anonymous> (C:\Users\Tim\PhpstormProjects\xxx\node_modules\webpack\lib\NormalModule.js:104:16)
at DependenciesBlock.onModuleBuild (C:\Users\Tim\PhpstormProjects\xxx\node_modules\webpack-core\lib\NormalModuleMixin.js:310:10)
at nextLoader (C:\Users\Tim\PhpstormProjects\xxx\node_modules\webpack-core\lib\NormalModuleMixin.js:275:25)
at C:\Users\Tim\PhpstormProjects\xxx\node_modules\webpack-core\lib\NormalModuleMixin.js:259:5
at Storage.finished (C:\Users\Tim\PhpstormProjects\xxx\node_modules\enhanced-resolve\lib\CachedInputFileSystem.js:38:16)
at C:\Users\Tim\PhpstormProjects\xxx\node_modules\graceful-fs\graceful-fs.js:78:16
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:439:3) @ ./sdocs.js 1:0-22
Run Code Online (Sandbox Code Playgroud)

我有三重检查,css-loader和样式加载器在本地级别加载.我首先在全球安装了它们,但是我将它们全局删除并在本地重新安装它们.顺便说一句,调试标志没有做任何额外的事情,输出没有变化,我认为这很奇怪.

我在Windows平台上运行是很重要的

rgv*_*tim 18

好,

如果有人遇到这个问题,这就是我的问题.问题发生在webpack.config.js中.最终工作的那个看起来像这样:

module.exports = {
    debug: true,
    entry: [ './sdocs.js' ],
    output: {
        filename: './[name].bundle.js'
    },
    module: {
      loaders: [
        { test: /\.css$/, loader: "style-loader!css-loader" },
      ],
    }
}
Run Code Online (Sandbox Code Playgroud)

丢失的部分是在模块密钥下移动加载程序密钥.

  • 我有完全相同的问题,具有相同的错误跟踪,我的配置文件看起来像你正确的版本,但我仍然无法使其工作.我开始累了 (2认同)

小智 5

我尝试在'module'键中指定'loaders'.但是,它对我不起作用.我认为对于2.5.1以上的webpack版本,在"模块"中添加规则非常有效.

在webpack.config.js中添加它

module: {
    rules:[
        { test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }
    ]
}
Run Code Online (Sandbox Code Playgroud)

当您将其添加为规则时,您不必单独提供tha loaders密钥!

  • 还运行 npm install style-loader --save 来安装样式加载器以使其正常工作。 (4认同)