亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Webpack-dev-server 不使用 HtmlWebpackPlugin 選項中的模板

Webpack-dev-server 不使用 HtmlWebpackPlugin 選項中的模板

小怪獸愛吃肉 2022-12-09 17:16:58
我確定我錯過了一些簡單的東西,但我看不到它......我正在使用一個 HtmlWebPlugin 實例,每個頁面/入口點都有一個模板。當我使用 webpack-dev-server 只有第一個實例實際上尊重模板中的內容時,其余的只使用簡單的 html 和 meta 標簽將文件寫入磁盤,無論是通過將 WriteFilePlugin 與開發服務器一起使用,還是通過簡單地在沒有開發服務器的情況下構建文件,都可以正確使用模板。我很難過。預期: about.html/index.html 這是我使用 write-file-webpack-plugin 和運行'webpack --config webpack.config.js'. Index.html 是相同的。<!DOCTYPE html><html><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <title>About</title></head><body>    <p>About</p></body></html>Webpack-dev-server 的實際輸出:(查看頁面源代碼)<!DOCTYPE html><html>    <head>        <meta charset="utf-8"/>    </head>    <body>        <script type="text/javascript" charset="utf-8" src="/about.js"></script>    </body></html>配置:webpack.config.jsconst HtmlWebpackPlugin = require('html-webpack-plugin');const WriteFilePlugin = require('write-file-webpack-plugin');const path = require('path');module.exports = {    entry: {        index: './src/js/index.js',        about: './src/js/about.js'    },    output: {        path: path.resolve(__dirname, 'dist'),        filename: '[name].js'    },    module: {        rules: [            {                test: /\.css$/,                use: ['style-loader', 'css-loader']            },            {                test: /\.html$/,                use: 'html-loader'            }        ]    },    devServer: {        openPage: 'about'    },    plugins: [        new WriteFilePlugin(),        new HtmlWebpackPlugin({            filename: 'index.html',            template: 'src/index.ejs',            chunks: ['index']        }),        new HtmlWebpackPlugin({            filename: 'about.html',            template: 'src/about.ejs',            chunks: ['about']        }),    ]};我看不出有什么明顯的錯誤,但是我是多頁面和 webpack 的新手
查看完整描述

3 回答

?
千萬里不及你

TA貢獻1784條經驗 獲得超9個贊

好吧,我不妨把我的恥辱作為答案,以防它在未來幫助其他人......

我導航到localhost:8080/about而不是localhost:8080/about.html。

腳本是在 /about 處注入的,但模板不是。在 /about.html 中使用了腳本和模板。我不確定為什么會有差異,但那是我的問題!


查看完整回答
反對 回復 2022-12-09
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

我認為你在那里缺少一個加載程序檢查https://www.npmjs.com/package/ejs-webpack-loader


我在帶有 HtmlWebpackPlugin 的包頁面中找到了一個示例,嘗試一下也許它會對您有所幫助


plugin: {

  new HtmlWebpackPlugin({

    template: '!!ejs-webpack-loader!src/index.ejs'

  })

}


查看完整回答
反對 回復 2022-12-09
?
30秒到達戰場

TA貢獻1828條經驗 獲得超6個贊

作為參考: https: //github.com/jaketrent/html-webpack-template/issues/69#issuecomment-376872044。


簡而言之,您需要對所有塊進行循環以插入到最終的 html 文件中。


以下是模板文件中的示例代碼


<% for (var chunk in htmlWebpackPlugin.files.js) { %>

    <script src="<%= htmlWebpackPlugin.files.js[chunk]%>"></script>

<% } %>

希望對您有所幫助,如有誤會請諒解。


查看完整回答
反對 回復 2022-12-09
  • 3 回答
  • 0 關注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號