博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack1学习笔记
阅读量:6173 次
发布时间:2019-06-21

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

基本介绍

引入文件

// a.jsrequire('./b.js')require('style-loader!css-loader!./a.css')

打包文件

// cliwebpack hello.js hello.bundle.js --module-bind 'css=style-loader!css-loader!'

预览html

// html

webpack选项参数

--watch
--progress
--display-modules
--display-reasons
--color
--display-error-details

基本配置

创建项目

mkdir webpack-demo
cd webpack-demo
npm init
npm install webpack --save-dev
mkdir src
mkdir dist
vsc //vscode
创建html并引入bundle.js
创建webpack.config.js//可参考官网配置API

//模块化输出module.exports={    //     entry:'./src/script/main.js',    output:{        path:'./dist/js',        filename:'bundle.js'    },}//cliwebpack --config webpack.dev.config.js//指定config文件为webpack.dev.config.js//

详解entry和output

entry的3种:单一字符串,数组,对象

output根绝entry不同而不同
【数组】
main和sub-main打包成bundle

module.exports={    entry:[    './src/script/main.js',    './src/script/sub-main.js'    ],    output:{        path:'./dist/js',        filename:'bundle.js'    },}

【对象】--多页面应用

main和打包成bundle

module.exports={    entry:{        page1:'./src/script/main.js',        page2:[            './src/script/main.js',            './src/script/sub-main.js'        ],        },    output:{        path:'./dist/js',        //【占位符】hash本次 chunkhash静态资源改变后才变化        filename:'[name]-[hash]-[chunkhash].js'    },}

使用插件

html-wabpack-plugin

作用:同步html内引入的js的chunkhash

//clinpm install html-wabpack-plugin --save-dev//webpack.config.jsvar htmlWebpackPlugin=require('html-wabpack-plugin')module.exports={    // 上下文的默认环境就是当前运行脚本的目录    // context:    entry:{        page1:'./src/script/main.js',        page2:[            './src/script/main.js',            './src/script/sub-main.js'        ],        },    output:{        path:'./dist',        // js        filename:'js/[name]-[hash]-[chunkhash].js',        // 上线环境的        publicPath:'http://m.mi.com/'    },    // 所有plugin都输出到output.path    plugin:[        //初始化插件 并传入相关参数        new htmlWebpackPlugin({            // 上下文环境 以根目录html作为模板             template:'index.html',            filename:'index-[hash].html',            inject:'head',//不配置的话 默认放到body标签内            //向html里面传参,            //在html用<%= htmlWebpackPlugin.options.title %>接收            title:'haha',//date:new Date(),            //压缩html 删除注释和空格            minify:{                removeComments:true,                collapseWhitespace:true            }        });    ]}
<% for (var key in htmlWebpackPlugin.files) {%><%= key %> : <%= JSON.stringify(htmlWebpackPlugin.files[key]) %><% } %><% for (var key in htmlWebpackPlugin.options) {%><%= key %> : <%= JSON.stringify(htmlWebpackPlugin.files[key]) %><% } %>

转载地址:http://clqba.baihongyu.com/

你可能感兴趣的文章
运维工作总结201403
查看>>
我是菜鸟我加油……mysql主从同步
查看>>
[体系结构]设计模式(五)
查看>>
分布式文件系统
查看>>
其实很简单 微星为你详解Z77主板BIOS设置
查看>>
在Ubuntu Kylin下安装JDK1.8
查看>>
Hadoop 学习一
查看>>
Linux中生成/etc/shadow的加密密码
查看>>
《gcc五分钟系列》第三节:-o选项
查看>>
批量检测主机存活状态
查看>>
解决 error: gnu/stubs-32.h: No such file or directory
查看>>
imread 函数 的相关细节
查看>>
分布式和事务
查看>>
C#学习常用类(1002)---KeyValuePair<TKey, TValue> 结构
查看>>
浅谈grep命令查找匹配内容的使用、参数、正则
查看>>
磁盘配额
查看>>
UserInputControls用户输入控制
查看>>
我的友情链接
查看>>
Nginx+Lua架构开发目录贴
查看>>
mysql备份方法(热备)
查看>>