webpack(10)打包其他资源文件引用阿里的图标库

1.进入网页:https://www.iconfont.cn/,登录后找到自己想要的图标,点击购物车图标添加入库,然后选择下载代码。

2.下载下来的是一个压缩文件里面有很多不同后缀的文件。在我们的项目下新建一个svg的文件夹,将下载的文件除了demo开头的两个文件其他全部拷贝到svg文件夹下。

3.在index.js中引入,下载的css文件:require('../svg/iconfont.css');

4.在iconfont.css中开头将它引用的url加上"./"前缀,为了后面将他引用的文件打包后引用地址正确

5.在index.html中引入图标:

<p>
        <span class="iconfont icon-time"></span>//这里的icon-time是我所下载的图标的名称,需要和自己的对应,具体叫什么名字可以在iconfont.css文件中找到
    </p>
6.这里打包的文件类型很多,有.ttf/.woff/.eot等。我们使用file-loade来对这些其他文件统一打包,因为他们都不需要进行特殊处理,只要原样输出到打包的文件夹,并保证引用路径正确就可以了。
 
7.配置webpack-config.js文件:
const{resolve}=require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin');
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin');

module.exports={
    entry:{
        vender:['./src/js/jquery.js','./src/js/common.js'],
        index:'./src/js/index.js',
        cart:'./src/js/cart.js'
    },
    output:{
        path:resolve(__dirname,'build'),
        filename:'[name].js'
    },
    mode:'development',
    module:{
        rules:[
            //{test:/.css$/,use:['style-loader','css-loader']},
            {test:/.css$/,use:[MiniCssExtractPlugin.loader,'css-loader','postcss-loader']},
            {test:/.less$/,use:[MiniCssExtractPlugin.loader,'css-loader','less-loader','postcss-loader']},
            {test:/.scss$/,use:[MiniCssExtractPlugin.loader,'css-loader','sass-loader','postcss-loader']},
            {test:/.(jpg|png)$/,use:[{ loader:'url-loader',options:{
                publichPath:'./images',
                outputPath:'images/',
                limit:1024*16,
                name:'[name].[ext]'
            }}]},
            {test: /.(html)$/, use:['html-loader']},
            {exclude:/.(js|json|html|css|less|scss|png|jpg|jpeg|gif)$/,use:[{loader:'file-loader',options:{//配置打包其他文件,exclude表示打包件除了写进去的后缀的其他文件
                publichPath:'./svg',//打包后引用文件需要加上的路径前缀
                outputPath:'svg/',//打包输出的文件夹
                name:'[name].[ext]'//打包后文件的输出名称,这里表示原名称不变
            }}]}
        ]
    },
    plugins:[
        new HtmlWebpackPlugin({
            template:'./src/index.html',
            filename:'index.html',
            chunks:['vender','index']
        }),
        new HtmlWebpackPlugin({
            template:'./src/cart.html',
            filename:'cart.html',
            chunks:['vender','cart']
        }),
        new MiniCssExtractPlugin({
            filename:'index.css'
        }),
        //new OptimizeCssAssetsPlugin()
    ]
}
原文地址:https://www.cnblogs.com/maycpou/p/14532066.html