目录javascript
将业务中写的各类格式的文件(typescript,less,jpg,vue...)经过特定的加载器(Loader)编译后,最终生成.js,.css,.png等静态资源文件。css
模块:在webpack世界里,一张图片、一个css、甚至一个字体,都称为模块(Module),它们彼此之间存在依赖关系
做用:webpack处理模块之间的依赖关系,并把它们进行打包html
//找到合适的目录下 //新建一个文件夹用于学习webpack mkdir webpackStudy // 进入目录 cd webpackStudy // 初始化 快速回车确认便可 npm init //成功后 后生成一个package.json文件 // 本地局部安装webpack 指定版本号(2.3.2) // 注意 这里版本号不一样可能会致使后边指令运行出错 yarn add webpack@2.3.2 --save-dev // 安装成功后package.json中会多一项配置 "dependencies": { "webpack": "2.3.2" } // 本地局部安装webpack-dev-server@2.4.2 //在开发环境中提供: //启动一个服务器 //热更新 //接口代理 yarn add webpack-dev-server@2.4.2 --save-dev
webpack核心-- 一个.js的配置文件,这个配置决定了:架构好坏前端
//在以前的目录下 (webpackStudy目录)新建一个js文件 touch webpack.config.js // 打开此文件 open webpack.config.js // 初始化 // 因为目前没有安装支持ES6的编译插件,暂时不能使用 'export default config'; // webpack.config.js文件内容以下 var config = { } module.exports = config
向package.json 中的scripts中添加快速启动webpack-dev-server服务的脚本
(包括打开的局域网ip(不输入则是默认的本地),打开的端口号(默认8080))vue
"dev": "webpack-dev-server --host xxx.xxx.xxx.xxx --port 8888 --open --config webpack.config.js"
webpack重要配置 之 入口(Entry) 和 出口(Output)java
入口: 告诉webpack从哪里开始寻找依赖,而且编译
出口: 用来配置编译后的文件存储位置和文件名字webpack
新建入口文件 main.js
==webpack会从main.js文件开始工做==web
touch main.js
而且在webpack.config.js中进行入口和出口配置typescript
// webpack.config.js var path = require('path') var config = { entry: { main: './main' }, // 打包文件存储为 webpackStudy/dist/main.js output: { //path 用来存放打包文件的输出目录 path: path.join(__dirname, './dist'), // publicPath 资源文件的引用目录 // 若是资源存放在CDN上,这里能够填写CDN的网址 publicpath: '/dist/', //filename 指定输出文件的名称 filename: 'main.js' } } module.exports = config
新建一个index.html 做为SPA入口npm
touch index.html //index.html 内容 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>webpack study</title> </head> <body> <div id="app"> Hello World </div> <script type="text/javascript" src="/dist/main.js"></script> </body> </html>
如今能够去终端执行
yarn run dev 或者 npm run dev
由一个html文件和一堆按需加载的js组成