vue-cli是如何在webpack-dev-server中应用HtmlWebpackPlugin的

发布于 2022-09-06 10:43:53 字数 1098 浏览 9 评论 0

在研究vue-cli的时候发现其dev环境下是通过"webpack-dev-server --inline --progress --config build/webpack.dev.conf.js"来生成一个可以热重载的服务器的。
我自己写了一个类似的小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(),
    ]
}

然而运行webpack-dev-server的时候发现打开localhost:8080并没有页面内容,判断HtmlWebpackPlugin没有生效,网络上查询也没有找到解决方法,想问下大佬们有没有思路或者解决办法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

辞取 2022-09-13 10:43:53

已发现,没有页面内容是文件路径配置错误导致的,只需要修改devServer的publicPath为'/'就可以解决。

说明对于webpack的publicPath的设置并未理解,在官网中是这样介绍的:

此路径下的打包文件可在浏览器中访问。

假设服务器运行在 http://localhost:8080 并且 output.filename 被设置为 bundle.js。默认 publicPath 是 "/",所以你的包(bundle)可以通过 http://localhost:8080/bundle.js 访问。

即在HTML中引用的文件的前置路径,如果设置错误会导致文件找不到,也就使HtmlWebpackPlugin没有生效

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文