html-webpack-plugin插件该如何修改favicon的输出路径?

在用webpack的时候,想要使用html-webpack-plugin来注入favicon,但是输出路径是output.path的,不知道怎么改

代码

const webpack = require('webpack');
const path = require('path');
const htmlWebpackPlugin = require('html-webpack-plugin');
const cleanWebpackPlugin = require('clean-webpack-plugin');

module.exports = {
    entry: 'app/scripts/main.js',
    output: {
        filename: 'bundle.js',
        path: 'dist/scripts'
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['react', 'es2015'] 
                    }
                }
            }
        ]
    },
    plugins: [
        new webpack.optimize.UglifyJsPlugin(),
        new htmlWebpackPlugin({
            favicon:'app/favicon.ico', 
            filename:"dist/index.html",
            template: 'app/index.html'
        }),
        new cleanWebpackPlugin(['dist'])
    ]
}
阅读 9.4k
3 个回答

陷入逻辑陷阱了,只想改html-webpack-plugin中的配置,其实可以把output改一下

output:{
    path:'dist',
    filename:'scripts/bundle.js'
}

其实output.path最好配置绝对路径,然后配置publicPath为项目路径,比较好一些:

output: {
  filename: 'js/[name].bundle.js',
  path: __dirname + '/dist',
  publicPath: 'http://127.0.0.1:8080'
},
new HtmlWebpackPlugin({
  favicon: './favicon.ico', // 设置 favicon 图标路径
})
plugins: [
        new HtmlWebpackPlugin({
            template: 'public/index.html',
            inject: 'body',
            favicon: 'public/favicon.ico'
        })
]

这样配置 Webpack 后,生成的 dist 目录中就会自动插入 favicon 标签了。
参照 Github

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题