背景:

简而言之,如果你曾经遇到过以下任何一种情况:
载入有问题的依赖项
遇到作用域的问题 —— CSS 和 JavaScript 都会有
寻找一个让你在 JavaScript 中使用 Node/Bower 模块的构建系统,要么就得依靠一个令人发狂的后端配置才能正确地使用这些模块
等等……

0. webpack 打包原理:

整个打包后的bundle.js是一个匿名函数自执行。参数则为一个数组。数组的每一项都为个function。function的内容则为每个模块的内容,并按照require的顺序排列。

相关链接

1. 基础环境

node  + webpack  + webpack-cli

2. 应用

2.1 js 文件打包   ( 模块化 + 压缩 )

初始化  -  配置文件 - webpack 运行

npm  init     -  webpack.config.js   -  webpack

webpack.config.js  代码

var path = require('path');

module.exports = {
entry: './js.js', // js.js 为 webpack.config.js 同级目录待打包的 js 文件
output: {
filename: 'bundle.js', // 输出文件 及文件夹 dist/bundle.js
path: path.resolve(__dirname, 'dist')
}
};

2.2 配合 babel 实现 es6 转为 es5 兼容低级浏览器

2.2.1 安装三个依赖项

"babel-core": "^6.26.3",              npm install --save-dev babel-core babel-preset-es2015
"babel-loader": "^7.1.5",                      npm install --save-dev babel-loader@7
"babel-preset-es2015": "^6.24.1"    
2.2.2 代码
webpack.config.js
module.exports = {
entry: './es6/main.js',
output: {
path: __dirname,
filename: './bin/app.bundle.js',
},
module: {
rules: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query:{
presets: ['es2015']
}
}]
}
}

.babelrc  文件代码  ( 新建记事本.txt   -   另存为  任意文件 + .babelrc )

{ "presets": [ "es2015" ] }
 
2.2.3  示例代码
main.js  :
let a = 111;
let b = 222;
var xxx = (c,d) => c*d;

3. npm 安装时 --save --dev 和 --save 区别

--save:将保存配置信息到pacjage.json。默认为dependencies节点中,dependencies:运行时的依赖,发布后,即生产环境下还需要用的模块。
--dev:将保存配置信息devDependencies节点中。devDependencies:开发时的依赖。里面的模块是开发时用的,发布时用不到它。

4. 手动搭建 开发环境

-- install
npm init -dev plug --save-dev
npm install --save-dev webpack
npm install --save-dev webpack-cli
npm install --save-dev style-loader css-loader
npm install --save-dev file-loader
npm install --save-dev html-webpack-plugin
npm install --save-dev clean-webpack-plugin
npm install --save-dev webpack-dev-server
npm install --save-dev express webpack-dev-middleware -product need --save
npm install --save lodash -- config
"build": "webpack" -- tips
npx - npm 升级版 ,自动寻找路径
根目录新建 webpack.config.js 处理配置 --do
npx webpack / npm run build
npx webpack --config webpack.config.js (自动识别,可配置任意名称文件)

参考链接:

webpack 概述

30分钟掌握ES6/ES2015核心内容(上)

https://babeljs.io/

详解前端模块化工具-webpack

webpack打包经验——处理打包文件体积过大的问题

webpack把我们的业务模块分开打包

webpack 利用Code Splitting 分批打包、按需下载

webpack 使用的更多相关文章

  1. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  2. webpack之傻瓜式教程

    接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpack教程满天飞,但是却很难找到一个能让新人快 ...

  3. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  4. Webstorm+Webpack+echarts构建个性化定制的数据可视化图表&&两个echarts详细教程(柱状图,南丁格尔图)

    Webstorm+Webpack+echarts   ECharts 特性介绍 ECharts,一个纯 Javascript 的图表库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(I ...

  5. 使用webstorm+webpack构建简单入门级“HelloWorld”的应用&&引用jquery来实现alert

    使用webstorm+webpack构建简单入门级"HelloWorld"的应用&&构建使用jquery来实现 1.首先你自己把webstorm安装完成. 请参考这 ...

  6. webpack入门教程之Hello webpack(一)

    webpack入门教程系列为官网Tutorials的个人译文,旨在给予想要学习webpack的小伙伴一个另外的途径.如有不当之处,请大家指出. 看完入门教程系列后,你将会学习到如下内容: 1.如何安装 ...

  7. webpack的使用

    1.webpack是什么? 打包前端项目的工具(为项目提高逼格的东西). 2.webpack的基本命令 webpack#最基本的启动webpack命令 webpack-w #提供watch方法,实时进 ...

  8. Webpack 配置摘要

    open-browser-webpack-plugin 自动打开浏览器 html-webpack-plugin 通过 JS 生成 HTML webpack.optimize.UglifyJsPlugi ...

  9. Vue + Webpack + Vue-loader 系列教程(2)相关配置篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ 使用预处理器 在 Webpack 中,所有的预处理器需要和一个相应的加载器一同使用.vue- ...

  10. Vue + Webpack + Vue-loader 系列教程(1)功能介绍篇

    原文地址:https://lvyongbo.gitbooks.io/vue-loader/content/ Vue-loader 是什么? vue-loader 是一个加载器,能把如下格式的 Vue ...

随机推荐

  1. Prometheus监控学习笔记之Prometheus普罗米修斯监控入门

    0x00 概述 视频讲解通过链接网易云课堂·IT技术快速入门学院进入,更多关于Prometheus的文章. Prometheus是最近几年开始流行的一个新兴监控告警工具,特别是kubernetes的流 ...

  2. ztree实现表格风格的树状结构

    zTree官方api: http://www.treejs.cn/v3/api.php 原理很简单:利用zTree的addDiyDom方法,自定义每个DOM节点,在原来的节点后面加一些div,再利用c ...

  3. Golang字符串格式化

    Go对字符串格式化提供了良好的支持.下面我们看些常用的字符串格式化的例子. package main import ( "fmt" "os" ) type po ...

  4. k8s tensorflow

    Online learning github source Kubeflow实战系列 Prepare 了解ksonnet初探Google之Kubeflow (采用的是0.8.0)install dep ...

  5. linux 计划任务 crontab 简单用法

    添加计划任务: 方法1: crontab -e 方法2: vim /etc/crontab #这种方式进去的文件有个sample可供参考 查看已经启动的任务:crontab -l 查看运行状态:ser ...

  6. deepin云打印实现连接Windows打印机

    问题的产生:今天给台式机安装deepin系统时,突发奇想能不能给其安装上打印机驱动,让其实现打印功能. 问题的解决方法: 1.在连接打印机的电脑上安装deepin云打印服务端软件,下载地址:https ...

  7. FileZilla建立服务器,命令行客户端

    一.服务器 1.安装FileZilla 2.打开用户 3.输入用户名密码 4.选择目录 注意:files也可全部勾选上,以免没有权限上传 二.命令行作为客户端 1.进入ftp >>ftp ...

  8. springboot项目打包部署在指定的tomcat容器中

    1.首先需要修改项目的打包方式,将package改为war <packaging>war</packaging> 2.移除spring boot web中的嵌入式tomcat ...

  9. Python3 tkinter基础 Canvas create_rectangle 画矩形

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  10. Python 实用技巧

    模块相关 导入模块时,可以通过模块的 __file__ 属性查看模块所在磁盘的路径位置,参考:关于Python包和模块的10个知识清单 Pip 安装Pip 方法一: sudo apt-get purg ...