编译sass

时间:2017-01-16 10:53:52

标签: 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;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.icon-close2:before {
  content: "\e66d";
}
.icon-checkmark2:before {
  content: "\ea11";
}

和这样的webpack配置:

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']
            }
        ]
    }
};

module.exports = config;

一旦我有上面的sass组件,我就会收到以下错误:

  

./public/fonts/icomoon.ttf中的错误模块解析失败:   /Users/alessandro.santese/Desktop/Alessandro/AIA/projects/accenture-tshirtbuilder/tshirtbuilder/public/fonts/icomoon.ttf   意外的角色'' (1:0)您可能需要一个合适的装载机   处理此文件类型。

以及许多其他类似的其他字体

1 个答案:

答案 0 :(得分:0)

您的webpack配置错过了ttf文件的加载程序。我认为你应该在你的情况下使用url loader。 添加到您的装载机

{
  test: /\.(eot|woff|woff2|ttf|svg|png|jpg)$/,
  loader: 'url-loader?limit=30000&name=[name]-[hash].[ext]'
}

您需要安装它:npm install url-loader --save-dev