反应字体错误

时间:2017-01-17 11:26:55

标签: reactjs sass webpack

我的SASS组件中有以下内容:

@font-face {
  font-family: 'icomoon';
  src:  url('../fonts/icomoon.eot');
  src:  url('../fonts/icomoon.eot') format('embedded-opentype'),
    url('../fonts/icomoon.ttf') format('truetype'),
    url('../fonts/icomoon.woff') format('woff'),
    url('../fonts/icomoon.svg') format('svg');
  font-weight: normal;
  font-style: normal;
}

@font-face {
  font-family: 'Graphink Regular';
  src: url('../fonts/GraphikRegular.ttf') format('truetype');
  font-weight: normal;
  font-style: normal;
}

icomoon的第一条规则工作正常,但webpack抱怨第二条引发了以下错误:

ERROR in ./public/fonts/GraphikRegular.ttf
Module build failed: Error: Cannot find module 'file-loader'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.module.exports (/Users/alessandro.santese/Desktop/Alessandro/AIA/projects/accenture-tshirtbuilder/tshirtbuilder/node_modules/url-loader/index.js:18:20)
 @ ./~/css-loader!./~/sass-loader!./public/sass/typography.scss 6:514-552

这是我的webpack.config

var webpack = require('webpack');
var path = require('path');

var BUILD_DIR = path.resolve(__dirname, 'public/js/');
var APP_DIR = path.resolve(__dirname, 'jsx');

var config = {
    entry: APP_DIR + '/index.jsx',
    output: {
        path: BUILD_DIR,
        filename: 'app.js'
    },
    module : {
        loaders : [
            {
                test : /\.jsx?/,
                include : APP_DIR,
                loader : 'babel'
            },
            {
                test: /\.scss$/,
                loaders: ['style', 'css', 'sass']
            },
            {
              test: /\.(eot|woff|woff2|ttf|svg|png|jpg)$/,
              loader: 'url-loader?limit=30000&name=[name]-[hash].[ext]'
            }
        ]
    }
};

module.exports = config;

所有字体都在名为“fonts”的同一文件夹中。

1 个答案:

答案 0 :(得分:1)

错误声称它没有找到 file-loader 模块。该模块是url-loader模块的peerDependency,也许你还没有安装它。尝试安装模块:

npm install --save-dev file-loader