我希望能够import
在我的反应应用程序中不仅用于 js/jsx 文件,还可以用于 css 文件。根据我的阅读,最好的方法是使用extract-text-webpack-plugin
将导入的 css 文件并将它们捆绑在一起。
我已经对其进行了设置,以便它生成我捆绑的 css 文件,但由于某种原因,每次我加载我的页面时都会出现语法错误:
SyntaxError: MyWebpage/views/global.css: Unexpected token, expected ; (1:5)
> 1 | body {
| ^
2 | margin: 0;
3 | }
我的设置如下所示:
webpack.config.js
const path = require('path');
const ExtractTextPlugin = require('extract-text-webpack-plugin');
const config = {
entry: ['babel-polyfill', './views/Index.jsx'],
output: {
path: path.resolve(__dirname, 'public'),
filename: 'bundle.js',
publicPath: '/public'
},
module: {
rules: [
{ test: /\.(jsx|js)$/, exclude: /node_modules/ , use: 'babel-loader' },
{
test: /\.css$/,
use: ExtractTextPlugin.extract({
fallback: "style-loader",
use: "css-loader"
})
}
]
},
plugins: [
new ExtractTextPlugin("styles.css"),
]
};
module.exports = config;
入口点./views/Index.js
是我要导入我的 css 文件的地方:
索引.js
import React from 'react';
import Layout from './Layout.jsx';
import PageContent from './PageContent.jsx';
import './global.css';
class Index extends React.Component {
render() {
return (
<Layout title={this.props.title}>
<PageContent />
</Layout>
);
}
}
export default Index;
在导入的./Layout.jsx
文件中,我使用 a<link>
在我的页面中包含捆绑的 css 文件:
布局.jsx
import React from 'react';
class Layout extends React.Component {
render() {
return (
<html>
<head>
<title>{this.props.title}</title>
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<div id="root">
{this.props.children}
</div>
<script type="text/javascript" src="./bundle.js"></script>
</body>
</html>
);
}
}
export default Layout;
我很困惑,因为看起来我的应用程序构建良好,但是当我尝试访问我的网页时,我不断收到语法错误。
谁能帮我理解我做错了什么?