fex-team / fis3

FIS3
http://fis.baidu.com
BSD 2-Clause "Simplified" License
2.79k stars 694 forks source link

iconfont代码编译后缺失 #iefix #1105

Open parkyang opened 7 years ago

parkyang commented 7 years ago

编译前:

@font-face {font-family: "iconfont";
  src: url('/static/fonts/iconfont.eot'); /* IE9*/
  src: url('/static/fonts/iconfont.eot#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('/static/fonts/iconfont.woff') format('woff'), /* chrome, firefox */
  url('/static/fonts/iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/
  url('/static/fonts/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}

编译后:

@font-face {
  font-family: "iconfont";
  src: url('../fonts/iconfont.eot');
  /* IE9*/
  src: url('../fonts/iconfont.eot') format('embedded-opentype'), /* IE6-IE8 */ url('../fonts/iconfont.woff') format('woff'), /* chrome, firefox */ url('../fonts/iconfont.ttf') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+*/ url('../fonts/iconfont.svg') format('svg');
  /* iOS 4.1- */
}

编译后已经缺失了#iefix;导致IE6-IE8无效了

oxUnd commented 7 years ago

你的配置文件放上来看看

parkyang commented 7 years ago

@font-face写在iconfont.less中,被 @import "./iconfont"; 到base.less中了,最后集中引用的base;我试过直接iconfont.css单独使用,好像也同样,怀疑是clean-css清除了!

var pathConfig = {
    'static'    : 'static',
    'js'        : 'static/js',
    'css'       : 'static/css',
    'images'    : 'static/images',
    'fonts'     : 'static/fonts',
    'dist'      : 'dist',
    'components': 'components'
}, proPath = new (function () {
    var that = this;
    for (var i in pathConfig) {
        that[i] = (function (name) {
            var basePath = (pathConfig[name] || '');
            if (basePath.length > 0 && !(/\\|\/$/.test(basePath))) {
                basePath += '/';
            }
            return function (path) {
                return basePath + (path || '');
            };
        })(i)
    }
})();

fis.set('project.ignore', [
    'bower_components/**',
    'dist/**',
    'node_modules/**',
    'psd/**',
    'ue/**',
    '*.{js,gitignore,json,md}'
]);
fis.hook('relative');

fis.match(proPath.fonts('**'), {
    // 给fonts加md5版本号
    useHash:true
});

fis.match('{' + proPath.js('**') + ',' + proPath.components('**/*.js') + '}', {
    optimizer: fis.plugin('uglify-js')
});
fis.match('{!/custom-bs/**.less,**.less}', {
  parser: [
    fis.plugin('less-2.x')
  ],
  rExt: '.css'
});
fis.match(proPath.css('**'), {
    // fis-optimizer-clean-css 进行css压缩,已内置
    optimizer: fis.plugin('clean-css')
});

fis.match(proPath.images('**/*.png'), {
    // fis-optimizer-png-compressor 进行png图片压缩
    optimizer: fis.plugin('png-compressor')
});

fis.match('::package', {
    postpackager: fis.plugin('loader'),
    spriter     : fis.plugin('csssprites')
});
fis.match('**', { relative: true });

//dev 模式文件不压缩且文件名不加md5版本号
fis.media('dev').match('/custom-bs/**', {
        // 设置 release 为 FALSE,不再产出此文件
        release: false
    }).match('{hbs/**,template/**}', {
        // 设置 release 为 FALSE,不再产出此文件
        release: false
    })
    .match('**', {
        useHash  : false,
        useSprite: false,
        optimizer: null
    });