我是webpack的新手,我已经能够将它打包到我的javascript中,但CSS让我望而却步。我一直得到:
“您可能需要一个合适的加载程序来处理此文件类型”
我的css文件的第一行。 CSS文件很简单:
body {
color:red
}
webpack.config.js如下所示:
module.exports = {
debug: true,
entry: [ './sdocs.js' ],
output: {
filename: './[name].bundle.js'
},
loaders: [
{ test: /\.css$/, loader: "style-loader!css-loader" },
],
}
sdocs.js也很简单,看起来像这样:
require('./sdocs.css');
最后运行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
我已经在本地级别加载了三重检查,css-loader和style-loader。我首先在全球安装了它们,但是我将它们全局删除并在本地重新安装它们。顺便说一句,调试标志没有做任何额外的事情,输出没有变化,我认为这很奇怪。
我在Windows平台上运行很重要
答案 0 :(得分:16)
确定,
如果有人遇到这个问题,这就是我的问题。问题发生在webpack.config.js中。最终工作的那个看起来像这样:
module.exports = {
debug: true,
entry: [ './sdocs.js' ],
output: {
filename: './[name].bundle.js'
},
module: {
loaders: [
{ test: /\.css$/, loader: "style-loader!css-loader" },
],
}
}
缺少的部分是在模块密钥下移动加载程序密钥。
答案 1 :(得分:5)
我尝试在'module'键中指定'loaders'。但是,它对我不起作用。我认为对于2.5.1以上的webpack版本,在'module'中添加规则可以很好地工作。
在webpack.config.js中添加此内容
module: {
rules:[
{ test: /\.css$/, use: [ 'style-loader', 'css-loader' ] }
]
}
当您将其添加为规则时,您不必单独提供tha loaders密钥!
答案 2 :(得分:0)
我遇到了你遇到的同样问题。也许你在开发环境(热重载),只需按 ctrl + c 来终止终端上的进程,然后重新打开dev env(npm run dev)。
答案 3 :(得分:0)
我面对这个问题大约10天了。所以这是我发现可以解决此问题的解决方案。使用create-react-app
后,您创建了一个React应用,首先运行脚本npm run eject
。
然后,转到以下链接https://webpack.js.org/loaders/,单击val-loader
并按照此处的说明进行安装,然后安装url-loader
文件。
它现在必须工作。