鍍金池/ 問答/HTML/ vue-cli是如何在webpack-dev-server中應(yīng)用HtmlWebp

vue-cli是如何在webpack-dev-server中應(yīng)用HtmlWebpackPlugin的

在研究vue-cli的時(shí)候發(fā)現(xiàn)其dev環(huán)境下是通過"webpack-dev-server --inline --progress --config build/webpack.dev.conf.js"來生成一個(gè)可以熱重載的服務(wù)器的。
我自己寫了一個(gè)類似的小demo,webpack.config.js:

let path = require('path')
let webpack = require('webpack');
let HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
    entry: './src/entry.js',
    devtool: 'inline-source-map',
    output: {
        path: path.join(__dirname, 'dist'),
        filename: 'bundle.js',
        publicPath: '/'
    },
    devServer: {
        hot: true,
        compress: true,
        publicPath: './'
    },
    module: {
        loaders: [{
                test: /\.css$/,
                loader: "style-loader!css-loader"
            },
            {
                test: /\.less$/,
                loader: "style-loader!css-loader!less-loader"
            }
        ]
    },
    plugins: [
        new webpack.HotModuleReplacementPlugin(), // 熱加載
        new HtmlWebpackPlugin(),
    ]
}

然而運(yùn)行webpack-dev-server的時(shí)候發(fā)現(xiàn)打開localhost:8080并沒有頁面內(nèi)容,判斷HtmlWebpackPlugin沒有生效,網(wǎng)絡(luò)上查詢也沒有找到解決方法,想問下大佬們有沒有思路或者解決辦法

回答
編輯回答
夢一場

已發(fā)現(xiàn),沒有頁面內(nèi)容是文件路徑配置錯(cuò)誤導(dǎo)致的,只需要修改devServer的publicPath為'/'就可以解決。

說明對于webpack的publicPath的設(shè)置并未理解,在官網(wǎng)中是這樣介紹的:

此路徑下的打包文件可在瀏覽器中訪問。

假設(shè)服務(wù)器運(yùn)行在 http://localhost:8080 并且 output.filename 被設(shè)置為 bundle.js。默認(rèn) publicPath 是 "/",所以你的包(bundle)可以通過 http://localhost:8080/bundle.js 訪問。

即在HTML中引用的文件的前置路徑,如果設(shè)置錯(cuò)誤會導(dǎo)致文件找不到,也就使HtmlWebpackPlugin沒有生效

2018年2月27日 15:02