博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webapck html-loader实现资源复用
阅读量:5744 次
发布时间:2019-06-18

本文共 5431 字,大约阅读时间需要 18 分钟。

1、安装

npm i html-loader --save-dev

2、项目目录

 

layout文件夹下的footer.html文件为:

layout文件夹下的head-common.html文件为:

login.html文件为(已包含配置):

    <%= require('html-loader!./layout/head-common.html')  %>            <%= require('html-loader!./layout/footer.html')  %>    

3、webpack.config.js文件为:

 

//处理html模板var htmlWebpackPlugin = require('html-webpack-plugin');//处理共用、通用的jsvar webpack = require('webpack');//css单独打包var ExtractTextPlugin = require("extract-text-webpack-plugin");// 获取html-webpack-plugin参数的方法 var getHtmlConfig = function(name, title){    return {        template    : './src/view/' + name + '.html',        filename    : 'view/' + name + '.html',        favicon     : './favicon.ico',        title       : title,        inject      : true,        hash        : true,        chunks      : ['common', name]    };};module.exports = {    //    entry: './src/app.js',    entry: {        //通用模块        'common': ['./src/page/common/index.js'],        'login': ['./src/page/login/index.js'],        'index': ['./src/page/index/index.js']    },    output: {        path: __dirname + '/dist',        filename: 'js/[name].js'    },    //将外部变量或者模块加载进来    externals: {        'jquery': 'window.jQuery'    },    module: {        loaders: [{                test: /\.js$/,                //以下目录不处理                exclude: /node_modules/,                //只处理以下目录                include: /src/,                loader: "babel-loader",                //配置的目标运行环境(environment)自动启用需要的 babel 插件                query: {                    presets: ['latest']                }            },            //css 处理这一块            {                test: /\.css$/,                use: ExtractTextPlugin.extract({                    fallback: "style-loader",                    use: [                        //'style-loader',                        {                            loader: 'css-loader',                            options: {                                //支持@important引入css                                importLoaders: 1                            }                        },                        {                            loader: 'postcss-loader',                            options: {                                plugins: function() {                                    return [                                        //一定要写在require("autoprefixer")前面,否则require("autoprefixer")无效                                        require('postcss-import')(),                                        require("autoprefixer")({                                            "browsers": ["Android >= 4.1", "iOS >= 7.0", "ie >= 8"]                                        })                                    ]                                }                            }                        }                    ]                })            },            //less 处理这一块            {                test: /\.less$/,                use: ExtractTextPlugin.extract({                    fallback: "style-loader",                    use: [                        //'style-loader',                        {                            loader: 'css-loader',                            options: {                                //支持@important引入css                                importLoaders: 1                            }                        },                        {                            loader: 'postcss-loader',                            options: {                                plugins: function() {                                    return [                                        //一定要写在require("autoprefixer")前面,否则require("autoprefixer")无效                                        require('postcss-import')(),                                        require("autoprefixer")({                                            "browsers": ["Android >= 4.1", "iOS >= 7.0", "ie >= 8"]                                        })                                    ]                                }                            }                        },                        'less-loader'                    ]                })            },//            //处理html模板//            {//                test: /\.html$/,//                use: {//                    loader: 'html-loader'//                }//            },            //处理图片            {                test: /\.(png|jpg|gif|svg)$/i,                loaders: [                    //小于8k的图片编译为base64,大于10k的图片使用file-loader                                'url-loader?limit=8192&name:img/[name]-[hash:5].[ext]',                    //图片压缩                    'image-webpack-loader'                ]            }        ]    },    plugins: [        //html模板处理//        new htmlWebpackPlugin({//            template: 'index.html',//            filename: 'index.html',//            inject:true,//            hash:true,//            chunks:['common','index']//        }),        new htmlWebpackPlugin(getHtmlConfig('index', '首页')),            new htmlWebpackPlugin(getHtmlConfig('login', '登录页')),        // 独立通用模块到js/common.js        new webpack.optimize.CommonsChunkPlugin({            //公共块的块名称            name: 'common',            //生成的文件名            filename: 'js/common.js'        }),        //css 单独打包到文件        new ExtractTextPlugin('css/[name].css')    ]}

注:html-loade已经在login.html中配置好了。

4、执行命令&查看效果

npm run webpack

 

 

转载于:https://www.cnblogs.com/sunshq/p/7904920.html

你可能感兴趣的文章
上云就是这么简单——阿里云10分钟快速入门
查看>>
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
在ASP.NET MVC 中获取当前URL、controller、action
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
自动化测试之WatiN(2)
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>