webpack怎么把html搬到输出目录里

我在src/index目录里有一个index.html,现在我能把src/index/index.html引用的js和css打包输出到了/build目录下,但是怎么把html文件也搬到/build目录下??
而且我的html还是很多写好的静态结构的,不是一个简单的html-webpack-plugin就可以生成。
首页和文章页面的nav也是相同的,有没有类似jsp的include功能??

webpack.config.js

var path = require('path');
var pagesDir = path.resolve(__dirname,'./src/pages');
var buildDir = path.resolve(__dirname,'./build');
var ExtractTextPlugin = require('extract-text-webpack-plugin');

module.exports = {
    entry: {
        'index/index': path.resolve(pagesDir,'./index/index'),
        'article/index': path.resolve(pagesDir,'./article/index')
    },
    output: {
        path: buildDir,
        filename: '[name].js',
        chunkFilename: '[id].bundle.js'
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: ExtractTextPlugin.extract("css-loader") },
            {
                test: /\.(png|jpg|gif)$/,
                loader: 'url-loader?limit=8192&name=/.static/img/[hash].[ext]'
            }
        ]
    },
    plugins: [
        new ExtractTextPlugin('[name].css')
    ]
}
阅读 6.8k
1 个回答

首先你需要使用 npm 安装 html-webpack-plugin 插件

你需要生成几个html文件就new 几个 HtmlWebpackPlugin

const HtmlWebpackPlugin = require('html-webpack-plugin')
/*
..... 一大堆配置
*/
plugins: [
    new ExtractTextPlugin('[name].css'),
    //这里开始写
    new HtmlWebpackPlugin({
        filename: '这里写生成html存放路径',
        template: '', // html模板路径,模板路径是支持传参调用loader的,
        inject: 'body', //打包之后的js插入的位置,true/'head'/'body'/false,
        chunks: ['这里写entry里面你想引用哪些打包的js文件,这文件是个数组']
    }),
    new HtmlWebpackPlugin({
        // 如果你需要打包多个html,就不停的写下去,当然这个配置是可以动态生成然后push的
    })
]

具体楼主还是可以去参考下 html-webpack-plugin 相关资料,百度一大堆就不列出了,也可以去github上面查看

相信楼主看了上面的配置,和查询了相关资料后能很快熟悉的

而且我的html还是很多写好的静态结构的,不是一个简单的html-webpack-plugin就可以生成。
首页和文章页面的nav也是相同的,有没有类似jsp的include功能??

这个楼主就需要用到模板了,个人推荐ejs因为我也只用过这个,此时在template配置里面书写模板的位置,先npm install ejs-full-loader

template: '!!ejs-full-loader!src/build/index.html'

// 貌似楼主的文件是这个路径吧,记不太清了
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题