我尝试使用webpack和react和ts来优化我的网站,但是我遇到了一个障碍。下面是我的webpack.config.js文件,我相信它是正确的,但也许不是?下面是错误的图片。
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
entry: path.resolve(__dirname, '..', './src/index.tsx'),
resolve: {
extensions: ['.tsx', '.ts', '.js']
},
module: {
rules: [
{
test: /\.js|\.tsx$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
},
],
},
],
},
output: {
path: path.resolve(__dirname, '..', './build'),
filename: 'bundle.js',
},
mode: 'development',
plugins: [
new HtmlWebpackPlugin({
template: path.resolve(__dirname, '..', './src/index.html'),
}),
],
}
CSS和webp文件也会出现这种情况,但您只能在屏幕截图中看到CSS。
文件结构如下:
- build
- src
- App.tsx
- index.tsx
- index.html
- react-app-env.d.ts
- css
- animations.css
- App.css
- index.css
- nav.css
- images
- hero.webp
- image1.webp
- logo.webp
- webpack
- webpack.config.js
- .babel.rc
- package.json
- tsconfig.json
- yarn.lock
希望这能为解决方案提供足够的信息?谢谢!
1条答案
按热度按时间ioekq8ef1#
缺少处理CSS文件的加载程序。
就像你已经在
module.rules
数组中添加了加载器来处理.js
和.tsx
文件一样,同样你也必须添加适当的文件加载器来处理.css
文件。为此,你需要安装至少两个npm包,css-loader和style-loader。css-loader读取所有CSS文件,并管理导入,url路径,字体导入。其他的手style-loader从
bundle.js
获取CSS,并将其作为不单独的CSS文件放入DOM。安装所需的装载机。
npm install style-loader css-loader --save-dev
将已安装的加载程序配置到Webpack中。
您可以提取CSS并将其放在单独的
.css
文件中。因为css-loader管理文件中的css,而style-loader帮助把它放在dom中。如果你想要单独的css文件,你需要为此添加插件。
您所需要的只是mini-css-extract-plugin。
安装所需的软件包
npm install mini-css-extract-plugin --save-dev
将插件配置安装到Webpack中。
1.添加由
MiniCssExtractPlugin
提供的样式加载程序,而不是style-loader
,将style-loader
更改为MiniCssExtractPlugin.loader
。1.将
MiniCssExtractPlugin
添加到插件数组。