通过import styles from './style.css?inline'报错Expected a JavaScript module script but the server responded with a MIME type of "text/css".
时间: 2024-12-18 20:34:50 浏览: 13
这个错误提示意味着当你尝试使用Webpack或者其他模块加载器(如`import`语法)导入CSS文件时,服务器返回的内容类型不是预期的JavaScript模块(`.js`),而是文本样式表(`.css`)。Webpack期望从`./style.css?inline`路径获取一个打包后的JavaScript模块,但实际上接收到的是纯CSS。
解决这个问题通常需要检查两个方面:
1. 确保你的CSS文件没有设置为module模式。在Webpack配置中,你需要明确地告诉它这是个CSS文件,并应该使用`import()`函数而不是`import`关键字。例如:
```javascript
import './style.css';
// 或者使用MiniCssExtractPlugin提取并处理CSS
const styleLoader = require.resolve('style-loader');
const cssModuleLoader = require.resolve('css-loader');
module.exports = {
// ...
module: {
rules: [
{
test: /\.css$/,
use: [styleLoader, cssModuleLoader],
},
],
},
};
```
2. 如果你确实想在运行时动态注入CSS,可以考虑使用`style-loader`的`!`运算符结合`css-loader`,它会在浏览器内动态插入CSS内容。
如果你正在使用ES Module(ESM),那么你应该直接导入`.css`文件,而不是尝试打包它们。
阅读全文