本篇内容

  • 前言
  • 配置入口和输出
  • 热更新
  • loader配置
  • js代码压缩
  • html的打包与发布
前言
//全局安装
npm install -g webpack(3.6.0) npm init //安装到你的项目目录
npm install --save-dev webpack //本地化安装是防止全局的版本冲突,团队配合时也应注意node跟webpack版本的统一性 //在package.json中
"dependencies": {
//生产环境相关依赖 cnpm i -S/--save xxx
},
"devDependencies": {
//开发环境相关依赖 cnpm i -D/--save-dev xxx
} //另:
cnpm i -g live-server //使用:
live-server //(直接到开服务器进入项目根目录)
webpack.config.js配置入口和输出
//新建工程主文件夹
md src
echo >> main.js
echo >> index.html
//根目录下配置文件
cd ../
echo >> webpack.config.js const path=require('path');
module.exports={
entry:{
main:'./src/main.js', //键名决定打包后的名字
main2:'./src/main2.js', //多入口
},
output:{
path:path.resolve(__dirname,'dist'),
filename:'[name].js' //根据入口名字生成相应的文件
},
module:{},
plugins:[],
devServer:{}
} webpack 即可打包查看结果
热更新(该方式页面会刷新)
cnpm i -D webpack-dev-server(2.8.2)   

//配置热更新
devServer:{
contentBase:path.resolve(__dirname,'dist'),
host:'192.168.1.122',
compress:true, //压缩
port:1234
} //在package.json中
"scripts": {
"server": "webpack-dev-server" //--open直接运行并打开浏览器'webpack-dev-server --open'
}, //运行
npm run server

如果热更新有问题,另加插件

plugins: [
//...
new webpack.HotModuleReplacementPlugin(), //webpack自带
loader配置

如:style-loader css-loader

cnpm i -D style-loader css-loader

// webpack.config.js
module:{
rules:[
{
test:/\.css$/, //要匹配的文件后缀名
loaders:['style-loader','css-loader']
// include/exclude //(需要处理/不需要处理)
}
]
},
//main.js
import css from './css/index.css'; //被打包再js文件中 //运行
npm run server
js代码压缩
const uglify=require('uglifyjs-webpack-plugin');

plugins:[
new uglify()
],
html的打包与发布(在此之前并不能直接生成html文件,在dist中,.js文件也为注入)
cnpm i -D html-webpack-plugin

const htmlPlugin=require('html-webpack-plugin');

plugins:[
// new uglify()
new htmlPlugin({
minify:{ //压缩
removeAttributeQuotes:true //去除标签属性的''
},
hash:true, //防止缓存的影响
template:'./src/index.html'
})
], //运行
webpack

注意:

cnpm i live-server  //注意:与cnpm i -g live-server效果一样

cnpm i --production //只安装生产环境的安装包

项目地址:https://github.com/adoctors/webpack-3.6.0-demo1

webpack@3.6.0(1) -- 快速开始的更多相关文章

  1. Spring Boot 2.0 的快速入门(图文教程)

    摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠BYSocket 」欢迎关注和转载,保留摘要,谢谢! Spring Boot 2.0 的快速入门(图文教程) 大家都 ...

  2. .Net Core 3.0 IdentityServer4 快速入门

    .Net Core 3.0 IdentityServer4 快速入门 一.简介 IdentityServer4是用于ASP.NET Core的OpenID Connect和OAuth 2.0框架. 将 ...

  3. .Net Core 3.0 IdentityServer4 快速入门02

    .Net Core 3.0 IdentityServer4 快速入门 —— resource owner password credentials(密码模式) 一.前言 OAuth2.0默认有四种授权 ...

  4. webpack入门级 - 从0开始搭建单页项目配置

    前言 webpack 作为前端最知名的打包工具,能够把散落的模块打包成一个完整的应用,大多数的知名框架 cli 都是基于 webpack 来编写.这些 cli 为使用者预设好各种处理配置,使用多了就会 ...

  5. WPF 4.0 DatePicker 快速录入

    WPF 4.0的DatePicker在通过键盘录入日期的时候是非常让人郁闷的.必须按照日期的格式来完整输入例如,比如输入“2010/10/10”才能识别.而实际上在一些要求快速录入的场合,用户更希望直 ...

  6. 【翻译】Webpack 4 从0配置到生产模式

    查看原文 webpack 4 发布了! webpack 4 作为一个零配置的模块打包器 webpack 是强大的并且有许多独一无二的特点但是有一个痛点就是配置文件. 在中型到大型项目中为webpack ...

  7. webpack打包vue2.0项目时必现问题(转载)

    原文地址:http://www.imooc.com/article/17868 [Vue warn]: You are using the runtime-only build of Vue wher ...

  8. Spring Boot 2.0 教程 | 快速集成整合消息中间件 Kafka

    欢迎关注个人微信公众号: 小哈学Java, 每日推送 Java 领域干货文章,关注即免费无套路附送 100G 海量学习.面试资源哟!! 个人网站: https://www.exception.site ...

  9. Android7.0 添加快速设定Quick Settings Tile

    Android7.0新推出了一个非常实用的功能--添加快速设定(或者翻译成快速设置),但是感觉社区里关注的人比较少,可能目前为止国内还没有Android7.0的手机,但是越早接触越好,甚至可以告诉产品 ...

随机推荐

  1. python第三篇:python、flask关系映射

    python中关系映射主要包括三种:一对多关系映射.一对一关系映射.多对多关系映射. 一对多关系映射 一方:Student(学生) 添加关联属性和反向引用 多方:Article(文章) 添加外键关联 ...

  2. R 语言实现求导

    前言 高等数学是每个大学生都要学习的一门数学基础课,同时也可能是考完试后最容易忘记的一门知识.我在学习高数的时候绞尽脑汁,但始终都不知道为何而学.生活和工作基本用不到,就算是在计算机行业和金融行业,能 ...

  3. 封装一个简单的Hibernate SessionFactory

    封装Hibernate框架中的session工厂   ,方便很多,免去了很多重复无用的代码 package com.maya.test; import org.hibernate.*; import ...

  4. CyclicBarrier与CountDownLatch的区别

    import java.util.concurrent.CountDownLatch; /** * 作用于单个线程或几个线程,,在其他线程执行完之前,一直等待(await)知道countDown为零 ...

  5. 判断浏览器是否支持css3属性或单位

    1.用CSS.supports()方法 mark-zhq[3] //判断是否支持flex布局 var supportsFlex = CSS.supports("display", ...

  6. NOIp2018集训test-10-18 (bike day4)

    这是一套简单题,这几天的考试让bike老爷感觉很绝望,说实话我也确实不知道还能怎么更简单了. 这几天的题换做llj.sxy应该都能轻松AK吧,至少随便考个250+应该不是问题吧,我越来越觉得觉得我跟他 ...

  7. [转]jQuery.extend 函数详解

    JQuery的extend扩展方法:      Jquery的扩展方法extend是我们在写插件的过程中常用的方法,该方法有一些重载原型,在此,我们一起去了解了解.      一.Jquery的扩展方 ...

  8. NBIOT回答

    该部分分享的是物联网各垂直应用领域里,NB-IoT技术的部署,看看适合NB-IoT技术的垂直应用场景有哪些?垂直应用服务商又该如何部署? 1 NB-IoT适合的垂直应用场景有哪些? 2 NB-IoT垂 ...

  9. Velocity常用标签的讲解

    Velocity是一个基于java的模板引擎(template engine).它允许任何人仅仅简单的使用模板语言(template language)来引用由java代码定义的对象. 当Veloci ...

  10. tomcat solr 限制ip

    <Context path="/solr" reloadable="false" docBase="/var/www"> < ...