模块未找到错误:错误:无法解析'font-awesome'

7

多个模块 axios font-awesome history material-ui prop-types react react-bootstrap react-dom react-foundation react-redux react-router react-router-dom recharts redux redux-saga 中出现错误 找不到模块:Error: Can't resolve 'font-awesome' in '/Users/user/Documents/psbank/pslite_web' @ multi axios font-awesome history material-ui prop-types react react-bootstrap react-dom react-foundation react-redux react-router react-router-dom recharts redux redux-saga

.webpack.config.js:

const webpack = require("webpack");
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const ExtractTextPlugin = require("extract-text-webpack-plugin");

const VENDOR_LIBS = [
  'axios', 'font-awesome', 'history',
  'material-ui', 'prop-types', 'react',
  'react-bootstrap', 'react-dom', 'react-foundation', 'react-redux', 'react-router', 'react-router-dom', 'recharts', 'redux', 'redux-saga'
];

module.exports = {
  entry: {
    bundle: ["babel-polyfill", "./src/index.js"],
    vendors: VENDOR_LIBS
  },
  output: {
    path: path.resolve(__dirname, "dist"),
    filename: "[name].[chunkhash].js",
    publicPath: "./"
  },
  module: {
    rules: [
      {
        test: /\.jsx?$/,
        loader: "babel-loader",
        query: { compact: false }
      },
      {
        loader: ['style-loader','css-loader'],
        test: /\.css$/
      },
      {
        test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/,
        use: [
          {
            loader: "file-loader",
            options: {
              name: "[name].[ext]",
              outputPath: 'fonts/'

            }
          }
        ]
      }
    ]
  },
  plugins: [
    new webpack.optimize.CommonsChunkPlugin({
      names: [ 'vendors', 'manifest' ]
    }),
    new HtmlWebpackPlugin({
      template: "public/index.html"
    })
  ]
}; 

index.js:

import React                    from 'react';
import ReactDOM                 from 'react-dom';

import {
  createStore
  , applyMiddleware
} from 'redux'
import createSagaMiddleware from 'redux-saga'

import { Provider }             from 'react-redux'

import MuiThemeProvider         from 'material-ui/styles/MuiThemeProvider';
import darkBaseTheme            from 'material-ui/styles/baseThemes/darkBaseTheme';
import getMuiTheme              from 'material-ui/styles/getMuiTheme';

import './index.css';
import "font-awesome/css/font-awesome.css";



import MainComponent            from './pages/main/main.component';


import reducers                 from './_redux';
import reduxSaga                from './_reduxSaga';

import registerServiceWorker    from './registerServiceWorker';
const sagaMiddleware = createSagaMiddleware();

let store = createStore( 
    reducers
    , applyMiddleware( sagaMiddleware )
);

sagaMiddleware.run( reduxSaga );

const Container = () => (

    // <MuiThemeProvider muiTheme={getMuiTheme(darkBaseTheme)} >

    <Provider store={ store } >
        <MuiThemeProvider>
            <MainComponent />
        </MuiThemeProvider>
    </Provider>

);

ReactDOM.render(
    <Container />
    , document.getElementById( 'root' )
);

package.json: 

{
  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "^0.16.2",
    "font-awesome": "^4.7.0",
    "history": "^4.7.2",
    "material-ui": "^0.19.2",
    "prop-types": "^15.6.0",
    "react": "^15.6.1",
    "react-bootstrap": "^0.31.3",
    "react-dom": "^15.6.1",
    "react-foundation": "^0.9.2",
    "react-redux": "^5.0.6",
    "react-router": "^4.2.0",
    "react-router-dom": "^4.2.2",
    "recharts": "^1.0.0-alpha.6",
    "redux": "^3.7.2",
    "redux-saga": "^0.15.6"
  },

我已经搜遍了网络,从教程到可能的解决方案,花了将近两天的时间。从安装开始缩小范围,直到修改现有项目。这些都已经完成。

感谢您的帮助和专业知识。


2
你确定已经安装了font-awesome,例如 npm install --save font-awesome 吗? - Phil
是的,我已经在我的依赖项中安装了它。 - codeRamen
请看这里:https://github.com/webpack-contrib/less-loader/issues/53 和 https://github.com/gowravshekar/font-awesome-webpack/issues/20 - Jonathan Dion
2个回答

14

你尝试过 npm install --save font-awesome 吗?

(然后运行 npm install 或者 yarn install?)


1
如果您正在使用专业版,您需要以几乎与@S. Wu 相同的方式获取专业版包。
安装您的许可证。
npm config set "@fortawesome:registry" https://npm.fontawesome.com/
npm config set "//npm.fontawesome.com/:_authToken" xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

安装 Font Awesome Pro

npm install --save-dev @fortawesome/fontawesome-pro

由于一些 IteratorResult 错误,我还需要删除 node_modules 目录。不知道是否与此问题有关,但您可能仍会遇到它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接