微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

webpack:在 pug 模板中注入 javascript 哈希文件名

如何解决webpack:在 pug 模板中注入 javascript 哈希文件名

我使用 pug 作为我的 Node.JS 视图引擎。

我正在使用带有哈希名称的 webpack 捆绑我的 javascript 文件以进行缓存破坏。

这里的问题是我不知道如何在我的 pug 模板中包含捆绑的 javascript 文件名,因为每次它都会生成一个新的哈希名称

如何获取从 webpack 生成的哈希名称并将其包含在我的 pug 文件中?

这是它应该如何包含脚本文件

doctype html
html
  include _head

  body

    script(src='/_bundle/main.649c4c4e6c8076189257.js')

我的 webpack.config.js

const path = require("path")
const HtmlWebpackPlugin = require("html-webpack-plugin")

module.exports = {
  mode: "production",entry: "./src/_public/js/index.js",output: {
    filename: "main.[contenthash].js",path: path.resolve(__dirname,"src/_public/_bundle"),},module: {
    rules: [
      {
        test: /\.scss$/,use: [
          "style-loader","css-loader","sass-loader",],plugins: [
     new HtmlWebpackPlugin({
       filetype: "pug",}),new HtmlWebpackPlugin({
       filename: "./src/views/base.pug",}

解决方法

正确配置 HtmlWebpackPluginHtmlWebpackPugPlugin

const path = require("path")
const HtmlWebpackPlugin = require("html-webpack-plugin")
const HtmlWebpackPugPlugin = require('html-webpack-pug-plugin');

module.exports = {
    mode: "production",entry: "./src/_public/js/index.js",output: {
        filename: "main.[contenthash].js",path: path.resolve(__dirname,"src/_public/_bundle"),},module: {
        rules: [
            {
                test: /\.scss$/,use: [
                    "style-loader","css-loader","sass-loader",],plugins: [
        new HtmlWebpackPugPlugin(),new HtmlWebpackPlugin({
            template: './src/views/base.pug',filename: 'layout.pug',}),}

安装npm i HtmlWebpackPugPlugin。您将在 layout.pug 文件中找到 js 和 css 引用。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。