【发布时间】:2020-12-26 21:12:13
【问题描述】:
我正在尝试运行构建的 webpack-dev-server,但每次都失败并出现以下错误:
ERROR in ./src/style.css (./node_modules/css-loader/dist/cjs.js!./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js!./src/style.css)
Module build failed (from ./node_modules/css-loader/dist/cjs.js):
CssSyntaxError
(1:1) Unknown word
> 1 | var api = require("!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js");
| ^
2 | var content = require("!!../node_modules/css-loader/dist/cjs.js!./style.css");
3 |
我的 webpack.dev.js 看起来像这样:
const path = require('path');
const { merge } = require('webpack-merge');
const common = require('./webpack.common.js');
module.exports = merge(common, {
entry: './src/index.js',
mode: 'development',
devtool: 'inline-source-map',
optimization: {
usedExports: true,
},
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'dist'),
},
module: {
rules: [
{
test: /\.css$/,
use: [
'style-loader',
'css-loader',
],
},
{
test: /\.(png|svg|jpg|gif)$/,
use: [
'file-loader',
],
},
{
test: /\.m?js$/,
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env']
}
}
},
],
},
});
在我的 index.js 中使用 this 时出现错误:
import './style.css';
许多解决方案建议样式加载器和 css-loader 的顺序,但据我所知,它的顺序正确。我做错了什么?
【问题讨论】:
-
这是
var api = require在 css 文件中的东西吗? -
不,它不在我的 CSS 中。我检查了所有内容,我认为这是在node_module中使用var而不是let,但是我找不到行
-
看起来,有一条规则重复。你需要找到一种只做一次的方法。
-
style-loader 动态生成该规则,这就是您找不到它的原因。那么
unknown word部分是因为其他一些加载器甚至样式加载器正在阅读自己的内容。有时这可以通过不同的节点或 webpack 版本或加载程序的顺序来解决。这可能会发生 很多 不同的原因.. -
你能分享更多细节吗?在您的项目中包含您的
style.css、package.json或其他有用的文件。我试图根据给定的详细信息重现此错误,但无法这样做。如果您收到CssSyntaxError,那么我怀疑它显示的行在您的 style.css 文件中(看起来像 JavaScript,根本不应该存在)。
标签: javascript css webpack css-loader