本篇内容

  • 前言
  • 配置入口和输出
  • 热更新
  • 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

最新文章

  1. wepack+sass+vue 入门教程(二)
  2. 安装dubbo管理中心
  3. 【leetcode】Partition List
  4. C++ 析构方法
  5. 【HDOJ】4579 Random Walk
  6. http soap关系
  7. 独木舟上的旅行--nyoj题目71
  8. 【附答案】Java 大数据方向面试题,你会几个?
  9. Windows和Linux环境下搭建SVN服务器
  10. Quikapp快应用开发入门
  11. Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) B. Divisiblity of Differences
  12. 使用vba做一个正则表达式提取文本工具
  13. 3.1依赖注入「深入浅出ASP.NET Core系列」
  14. C# -- 使用线程池 ThreadPool 执行多线程任务
  15. 12.JavaScript字符串方法
  16. [Swift]LeetCode302. 包含黑色像素的最小矩形 $ Smallest Rectangle Enclosing Black Pixels
  17. [PHP] assert()断言检测函数
  18. 9、Docker私有registry
  19. fork()函数、进程表示符、进程位置
  20. AngularJS表格神器“ui-grid”的应用

热门文章

  1. 一张图理解is_nll isset empty
  2. PHP面试题,自己几斤几两,看看就知道了
  3. Idea_学习_01_Idea激活
  4. 如何定义一个接口(接口Interface只在COM组件中定义了,MFC和C++都没有接口的概念)
  5. 实现两个窗口通信方法-postMessage
  6. CodeForces - 1017 C. The Phone Number(数学)
  7. [转]为什么GOF的23种设计模式里面没有MVC?
  8. C语言中clock函数的使用
  9. 低调的css3属性font-size-adjust
  10. jquery 中post 、get的同步问题,从外部获取返回数据