我正在尝试使用React Semantic构建一个react应用程序 . 我使用webpack-dev-server,webpack-hot-middleware和webpack-dev-middleware来自动完成任务 .
我通过npm安装了语义ui .
npm install --save semantic-ui-css semantic-ui-react
但是,webpack似乎没有加载 ./node_modules/semantic-ui-css/themes/assets/fonts/
图标,并且它不适用于html页面 . 控制台没有错误,它只是没有显示图标 .
如果我不在反应应用程序中导入semantic-ui-css并包含在CDN中,它可以正常工作 .
App.js
import React from 'react';
import 'semantic-ui-css/semantic.min.css';
import { Container, Icon } from 'semantic-ui-react';
class App extends React.Component{
render(){
return (
<Container fluid>
<h1 id='test'>ReactJs</h1>
<hr/>
<Icon name='search' />
</Container>
)
}
}
export default App;
webpack.config.dev.js
import path from 'path';
import webpack from 'webpack';
export default {
devtool: 'eval-source-map',
entry: [
'webpack-hot-middleware/client',
path.join(__dirname, '/client/index.js')
],
output:{
path: '/',
publicPath: '/',
filename: 'bundle.js'
},
plugins: [
new webpack.NoEmitOnErrorsPlugin,
new webpack.optimize.OccurrenceOrderPlugin(),
new webpack.HotModuleReplacementPlugin()
],
module:{
loaders: [
{
test: /\.js$/,
include: path.join(__dirname, 'client'),
loaders: ['react-hot-loader', 'babel-loader']
},
{
test: /\.css$/,
use: [ 'style-loader', 'css-loader','sass-loader'],
},
{
test: /\.scss$/,
exclude: /node_modules/,
loaders: ['raw-loader', 'sass-loader'] // sass-loader not scss-loader
},
{
test: /\.sass$/,
loaders: ["style-loader", "css-loader", "sass-loader"]
},
{
test: /\.svg$/,
loader: 'svg-loader'
},
{ test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&mimetype=application/font-woff" },
{ test: /\.(ttf|eot|svg|png)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader" }
]
},
resolve:{
extensions: ['.js']
}
}
是否有任何加载器或包来包含来自语义ui包的图标?
1 回答
我也在使用带有webpack的SUI-React . 我有一个类似的问题,但对我来说,图标文件是由webpack“打包”,但没有正确加载 . 你确定webpack根本找不到它们吗?
我最终发现我的问题的来源是webpack配置:我的输出路径是
dist
子目录,index.html
从中加载bundle.js
. 这意味着webpack(和file-loader
)创建了相对于该目录的URL . 一旦我将输出路径更改为父目录,并将输出文件更改为dist/bundle.js
,一切都按预期工作 .我的
webpack.config.js
指定了你的入口点(尽管只有一个入口点,我没有使用webpack-hot-middleware
),而我的加载器是:我正在使用css加载
在索引文件而不是使用webpack加载器,但我认为这应该等同于你正在做的事情 .
也许你的
.css
加载器规则不应该包含sass-loader
?此外,加载器配置选项
use
似乎已添加到webpack v2中,因此如果您使用的是webpack v1,那么它应该与其他规则一样loaders
.希望你能搞清楚!