成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

[js高手之路]深入淺出webpack教程系列4-插件使用之html-webpack-plugin配

qpal / 2293人閱讀

摘要:還記得我們上文中的文件嗎那里面的標(biāo)簽還是寫死的文件,那么怎么把他們變成動(dòng)態(tài)的文件,這個(gè)動(dòng)態(tài)生成的文件會(huì)動(dòng)態(tài)引入我們打包后生成的文件呢,我們可以使用插件,首先安裝這個(gè)插件,好的,接下來(lái)就開始用這個(gè)插件了官方參考文檔插件通用用法

還記得我們上文中的index.html文件嗎? 那里面的script標(biāo)簽還是寫死的index.bundle.js文件,那么怎么把他們變成動(dòng)態(tài)的index.html文件,這個(gè)動(dòng)態(tài)生成的index.html文件會(huì)動(dòng)態(tài)引入我們打包后生成的js文件呢?,我們可以使用插件html-webpack-plugin,首先安裝這個(gè)插件npm install html-webpack-plugin --save-dev,好的,接下來(lái)就開始用這個(gè)插件了

官方參考文檔:

插件通用用法:https://webpack.js.org/config...

html-webpack-plugin插件用法:https://webpack.js.org/plugin...

html-webpack-plugin插件配置:https://github.com/jantimon/h...

一、首先,我們需要在配置文件webpack.dev.config.js中,引入插件

var HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    entry : {
        main : "./src/js/main.js",
        calc : "./src/js/calc.js"
    },
    output : {
        //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑
        path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑
        filename : "[name]-[hash].bundle.js" //打包之后輸出的文件名
    },
    plugins: [new HtmlWebpackPlugin()]
};

然后執(zhí)行npm run d打包命令,就能在dist目錄下動(dòng)態(tài)生成index.html文件,而且引入了2個(gè)動(dòng)態(tài)打包生成的js文件,這個(gè)時(shí)候刷新index.html文件,就能看到j(luò)s函數(shù)執(zhí)行的結(jié)果了

二、但是,這個(gè)在dist目錄下面新生成的html文件,跟我們的項(xiàng)目目錄(demo2)下面的index.html文件并沒有任何關(guān)聯(lián), 顯然不符合實(shí)際的項(xiàng)目需求,那我們想要的結(jié)果應(yīng)該是根據(jù)demo2下面的index.html這個(gè)文件,為模板生成dist目錄下面的index.html文件,這樣就把兩個(gè)文件建立起了關(guān)聯(lián),我們只需要在配置文件webpack.dev.config.js中,給html-webpack-plugin的構(gòu)造函數(shù)傳入template模板即可

 var HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    entry : {
        main : "./src/js/main.js",
        calc : "./src/js/calc.js"
    },
    output : {
        //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑
        path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑
        filename : "[name]-[hash].bundle.js" //打包之后輸出的文件名
    },
    plugins: [new HtmlWebpackPlugin(
        {
            template : "./index.html"
        }
    )]
};

template:就是以demo目錄下的這個(gè)index.html文件為模板生成dist/index.html文件,然后執(zhí)行npm run d打包命令就能重新生成了

三、但是還有個(gè)小問題,我們上面打包生成的index.html文件和js文件是在同一個(gè)目錄,在大型項(xiàng)目里面管理肯定很混亂,我們希望生成的.html文件和js文件分開存放,我們可以在webpack.dev.config.js文件中的filename配置中,加一個(gè)目錄js(js文件放在這個(gè)目錄下面),把他們分開就可以了,配置完了,不要忘記執(zhí)行打包命令(npm run d)

var HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    entry : {
        main : "./src/js/main.js",
        calc : "./src/js/calc.js"
    },
    output : {
        //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑
        path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑
        filename : "js/[name]-[hash].bundle.js" //打包之后輸出的文件名
    },
    plugins: [new HtmlWebpackPlugin(
        {
            template : "./index.html"
        }
    )]
};

四、插件的配置選項(xiàng):inject與filename
webpack.dev.config.js配置文件:



var HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    entry : {
        main : "./src/js/main.js",
        calc : "./src/js/calc.js"
    },
    output : {
        //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑
        path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑
        filename : "js/[name]-[hash].bundle.js" //打包之后輸出的文件名
    },
    plugins: [new HtmlWebpackPlugin(
        {
            template : "./index.html",
            filename : "index-[hash].html",
            inject : "head"
        }
    )]
};

filename:打包生成的文件名,還可以加目錄,默認(rèn)沒有寫的時(shí)候是index.html

inject:有4個(gè)值: true | "head" | "body" | false

如果設(shè)置為head, 就是把js引入放在head標(biāo)簽里面, 如果設(shè)置為body,就是把js引入放在body里面, false: 不會(huì)引入js文件 true:引入js文件

五、插件的選項(xiàng):title

title: 模板的標(biāo)題

webpack.dev.config.js配置文件代碼:

var HtmlWebpackPlugin = require("html-webpack-plugin");
module.exports = {
    entry : {
        main : "./src/js/main.js",
        calc : "./src/js/calc.js"
    },
    output : {
        //__dirname,就是當(dāng)前webpack.config.js文件所在的絕對(duì)路徑
        path : __dirname + "/dist", //輸出路徑,要用絕對(duì)路徑
        filename : "js/[name]-[hash].bundle.js" //打包之后輸出的文件名
    },
    plugins: [
        new HtmlWebpackPlugin({
            template : "./index.html",
            title : "ghostwu教你學(xué)webpack",
            inject : true
        })
    ]
};

然后,在demo2目錄下面的index.html文件中用ejs模板語(yǔ)法引入title

    


    
    
    
    <%= htmlWebpackPlugin.options.title %>




注意是:htmlWebpackPlugin.options.title,不要把html的h大寫, 千萬(wàn)注意,我在這里踩了好久的坑

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/91834.html

相關(guān)文章

  • [js高手]深入淺出webpack教程系列5-插件使用html-webpack-plugin

    摘要:上文我們講到了的配置和獲取數(shù)據(jù)的方式,本文,我們繼續(xù)深入的配置一插件中的除了自己定義了一些基本配置外,我們是可以任意的添加自定義的數(shù)據(jù)文件,就是當(dāng)前文件所在的絕對(duì)路徑輸出路徑,要用絕對(duì)路徑打包之后輸出的文件名教你學(xué)我們?cè)谥行略隽藗€(gè) 上文我們講到了options的配置和獲取數(shù)據(jù)的方式,本文,我們繼續(xù)深入options的配置 一、html-webpack-plugin插件中的options...

    lentoo 評(píng)論0 收藏0
  • [js高手]深入淺出webpack教程系列6-插件使用html-webpack-plugin

    摘要:上文我們對(duì)的實(shí)例進(jìn)行了遍歷分析,講解了幾個(gè)常用屬性以及自定義屬性的添加,本文,我們繼續(xù)深入他的配置選項(xiàng)的探討一選項(xiàng)這個(gè)屬性非常有用,可以指定某個(gè)頁(yè)面加載哪些如文件我們可以用他做多個(gè)頁(yè)面模板的生成比如,我們?cè)趯?shí)際開發(fā)中,做一個(gè)博客網(wǎng)站,一 上文我們對(duì)html-webpack-plugin的實(shí)例htmlWebpackPlugin進(jìn)行了遍歷分析,講解了幾個(gè)常用屬性( inject, mini...

    jokester 評(píng)論0 收藏0
  • [js高手]深入淺出webpack教程系列2-置文件webpack.config.js詳解(上

    摘要:接著上文,重新在文件夾下面新建一個(gè)項(xiàng)目文件夾,然后用初始化項(xiàng)目的配置文件,然后安裝,然后創(chuàng)建基本的項(xiàng)目文件夾結(jié)構(gòu),好了,我們的又一個(gè)基本項(xiàng)目結(jié)構(gòu)就搭建好了第一開始通過(guò)文件配置我們的項(xiàng)目首先在項(xiàng)目文件夾下面,新建一個(gè)文件,這個(gè)文件可 接著上文,重新在webpack文件夾下面新建一個(gè)項(xiàng)目文件夾demo2,然后用npm init --yes初始化項(xiàng)目的package.json配置文件,然后安...

    moven_j 評(píng)論0 收藏0
  • [js高手]深入淺出webpack教程系列3-置文件webpack.config.js詳解(下

    摘要:本文繼續(xù)接著上文,繼續(xù)寫下的其他配置用法一把兩個(gè)文件打包成一個(gè),怎么配置在上文中的中,用數(shù)組配置文件代碼,就是當(dāng)前文件所在的絕對(duì)路徑輸出路徑,要用絕對(duì)路徑打包之后輸出的文件名然后在目錄下面新建一個(gè)文件,代碼如下之前的文件的代碼告訴你怎么學(xué)習(xí) 本文繼續(xù)接著上文,繼續(xù)寫下webpack.config.js的其他配置用法. 一、把兩個(gè)文件打包成一個(gè),entry怎么配置? 在上文中的webpa...

    xiangchaobin 評(píng)論0 收藏0
  • [js高手]深入淺出webpack教程系列1-安裝與基本打包用法和命令參數(shù)

    摘要:,我想大家應(yīng)該都知道或者聽過(guò),是前端一個(gè)工具可以讓各個(gè)模塊進(jìn)行加載預(yù)處理再進(jìn)行打包。 webpack,我想大家應(yīng)該都知道或者聽過(guò),Webpack是前端一個(gè)工具,可以讓各個(gè)模塊進(jìn)行加載,預(yù)處理,再進(jìn)行打包?,F(xiàn)代的前端開發(fā)很多環(huán)境都依賴webpack構(gòu)建,比如vue官方就推薦使用webpack.廢話不多說(shuō),我們趕緊開始吧. 第一步、安裝webpack 新建文件夾webpack->再在web...

    pubdreamcc 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

qpal

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<