React.semantic ui的Icones没有加载webpack中间件
我正在尝试使用React Semantic构build一个反应应用程序。 我正在使用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页面./node_modules/semantic-ui-css/themes/assets/fonts/
。 在控制台中没有错误,它只是不显示图标。
如果我没有在反应应用程序中导入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包的图标?
我也用webpack来使用SUI-React。 我有一个类似的问题,但是对于我的图标文件是由webpack“打包”,但没有正确加载。 你确定webpack根本找不到它们吗?
我最终发现我的问题的来源是webpackconfiguration:我的输出path是一个dist
子目录, index.html
bundle.js
加载bundle.js
。 这意味着webpack(和file-loader
)相对于该目录创build了url。 一旦我通过输出path更改到父目录,并将输出文件更改为dist/bundle.js
,一切都按预期工作。
我的webpack.config.js
指定了入口点(尽pipe只有一个入口点,我没有使用webpack-hot-middleware
),我的webpack-hot-middleware
程序是:
loaders: [ { test: /\.jsx?/, include: SRC_DIR, loader: 'babel' }, { test: /\.(png|woff|woff2|eot|ttf|svg)$/, loader: 'file-loader' } ]
我正在使用加载的CSS
require("!style-loader!css-loader!semantic-ui-css/semantic.min.css")
在索引文件而不是使用webpack加载器,但我认为这应该相当于你在做什么。
也许你的.css
加载器规则不应该包含sass-loader
?
另外,加载程序configuration选项的use
似乎已经添加到webpack v2中,所以如果您使用的是webpack v1,那么应该是像其他规则一样的loaders
。
希望你能弄明白!