Maison >interface Web >tutoriel HTML >Traitement Webpack des fichiers HTML

Traitement Webpack des fichiers HTML

不言
不言original
2018-05-28 17:45:362717parcourir

Cet article partage avec vous le traitement des fichiers HTML par Webpack. Les étapes sont très détaillées. Les amis dans le besoin peuvent se référer à

  • Pourquoi traiter le fichier HTML
    . Toutes nos méthodes sont regroupées dans le dossier dist, et notre html se trouve dans le dossier défini par nous-mêmes. Si nous allons manuellement sur src un par un pour introduire les js dans ces dossiers dist, alors il y en a. C'est trop peu fiable

La solution est donc :

Utilisez le plug-in webpack : HtmlWebpackPlugin

  • Étape 1 : Téléchargez

npm install --save-dev extract-text-webpack-plugin

Étape 2 : webpack.config.jsConfiguration

Les éléments de configuration de HtmlWebpackPlugin sont :

Name 类型 Description
title {String} 用于生成的HTML文档的标题
filename {String} 要生成HTML的文件。可以指定目录
template {String} 依据的模板文件
inject {Boolean|String} 将js资源注入到页面哪个部位,值有:true ‘head’ ‘body’ false,当传递true或’body’所有JavaScript资源将被放置在正文元素的底部。’head’将脚本放置在head元素中
favicon {String} 将给定的图标路径添加到输出HTML
hash {Boolean} 如果true将webpack所有包含的脚本和CSS文件附加一个独特的编译哈希。这对缓存清除非常有用
chunks {?} 放入你需要引入的资源模块
excludeChunks {?} 不放入你某些资源模块

Objectifs visés : Mon projet est un projet avec plusieurs fichiers d'entrée. J'espère que chaque page d'entrée introduira le module js et css correspondants
. Par exemple, la page de connexion introduira les js et css de connexion, et l'index introduira les js et css correspondants

La configuration est la suivante : webpack.config.js

const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = {
  entry:{    'commom':['./src/page/common/index.js'],    'index':['./src/page/index/index.js'],    'login':['./src/page/login/index.js']
  },
  output:{
    path:path.resolve(__dirname, 'dist'),
    filename:'js/[name].js'
  },
  module:{
    rules:[
      {
        test:/\.css$/,
        use:ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader"
        })
      }
    ]
  },
  plugins:[    //独立通用模块
    new webpack.optimize.CommonsChunkPlugin({
      name : 'common',
      filename : 'js/base.js'
    }),    //独立打包css
    new ExtractTextPlugin('css/[name].css'),    //对html模板进行处理,生成对应的html,引入需要的资源模块
    new HtmlWebpackPlugin({
      template:'./src/view/index.html',//模板文件
      filename:'view/login/index.html',//目标文件
      chunks:['commom','login'],//对应加载的资源
      inject:true,//资源加入到底部
      hash:true//加入版本号
    })
  ]
}
module.exports= configs
Ensuite le résultat du packaging est le suivant


Traitement Webpack des fichiers HTML

Le fichier cible généré :


Traitement Webpack des fichiers HTML

  • Pourquoi traiter les fichiers html

    Toutes nos méthodes sont regroupées dans le dossier dist, et notre html se trouve dans un dossier auto-défini si vous importez manuellement ces fichiers dist un par un. src Le dossier js est un peu trop peu fiable

La solution est donc :

Utilisez le plug-in webpack : HtmlWebpackPlugin

  • Première étape : Télécharger

npm install --save-dev extract-text-webpack-plugin
Étape deux :

Configurationwebpack.config.js

Les éléments de configuration de HtmlWebpackPlugin sont :


预期目标: 我的项目是一个多入口文件的项目,希望每一个入口页面引入对应的js模块和css
比如login页面引入login的js和css、index引入对应js和css

webpack.config.js配置如下:

const path = require('path');const webpack = require('webpack')const ExtractTextPlugin = require("extract-text-webpack-plugin");const HtmlWebpackPlugin = require('html-webpack-plugin');const configs = {
  entry:{    'commom':['./src/page/common/index.js'],    'index':['./src/page/index/index.js'],    'login':['./src/page/login/index.js']
  },
  output:{
    path:path.resolve(__dirname, 'dist'),
    filename:'js/[name].js'
  },
  module:{
    rules:[
      {
        test:/\.css$/,
        use:ExtractTextPlugin.extract({
          fallback: "style-loader",
          use: "css-loader"
        })
      }
    ]
  },
  plugins:[    //独立通用模块
    new webpack.optimize.CommonsChunkPlugin({
      name : 'common',
      filename : 'js/base.js'
    }),    //独立打包css
    new ExtractTextPlugin('css/[name].css'),    //对html模板进行处理,生成对应的html,引入需要的资源模块
    new HtmlWebpackPlugin({
      template:'./src/view/index.html',//模板文件
      filename:'view/login/index.html',//目标文件
      chunks:['commom','login'],//对应加载的资源
      inject:true,//资源加入到底部
      hash:true//加入版本号
    })
  ]
}
module.exports= configs

然后打包结果如下
Traitement Webpack des fichiers HTML

其中生成的目标文件:
Traitement Webpack des fichiers HTML

相关推荐:

在webpack中使用ECharts详解

Node.js、jade生成静态html文件实例

webpack的插件详解

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn