SCSS文件无法导入node_module

时间:2017-10-09 03:46:00

标签: reactjs webpack sass

尝试了@import" ~reaction-icons"在SCSS文件中。

我收到错误:模块构建失败:     @import" ~reaction-icons&#34 ;;     ^           要导入的文件未找到或不可读:~reaction-icons。

这是我安装的npm模块,位于package-json上。

我的scss代码如下所示,错误位于第一行:

@import "~react-icons";

input {
    width: 100%;
    box-sizing: border-box;
    border: 2px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    background-color: white;
    padding: 12px 20px 12px 20px;
    margin-bottom: 20px;
}

我的webpack配置如下所示:

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

let BUILD_DIR = path.resolve(__dirname, 'dist');
let APP_DIR = path.resolve(__dirname, 'src');

let config = {
    entry: path.join(APP_DIR, '/index.js'),
    output: {
        path: BUILD_DIR,
        filename: 'bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.jsx?/,
                include: APP_DIR,
                loaders: ['babel-loader']
            },
            {
                test: /\.scss$/,
                use: ExtractTextPlugin.extract({
                  fallback: "style-loader",
                  use: ['css-loader', 'sass-loader'],
                  publicPath: "/dist"
                })
            },
            {
                test: /\.(ttf|eot|svg|gif|woff(2)?)(\?[a-z0-9]+)?(\?v=
                     [0-9]\.[0-9]\.[0-9])?$/,
                loader: 'file-loader',
            }
        ]
    },
    resolve: {
        extensions: ['.js', '.jsx']
    },
    devServer: {
        contentBase: path.join(__dirname),
        // serve index.html in place of 404 responses to allow HTML5 
        // history
        historyApiFallback: true
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(),
        new HtmlWebpackPlugin({
          title: 'Project',
          minify: {
            collapseWhitespace: true
          },
          hash: true,
          template: './index.html'
        }),
        new ExtractTextPlugin({
          filename: 'style.css',
          disable: false,
          allChunks: true
        })
    ]
};

module.exports = config;

1 个答案:

答案 0 :(得分:0)

没有要为react-icons导入的scss文件。您必须导入要使用的文件中的图标:

import FaSearch from 'react-icons/lib/fa/search';

class Search extends React.Component {
    render() {
        return <FaSearch />
    }
}