一、ECMAScript2016 引包
import 是 ECMAScript 2016的最新语法。如果加上大括号引用一个模块:
1 | import {fn,fn2} from "./a.js"; |
表示:
用fn
来接受 a 模块中的exports.fn= function(){}
用fn2
来接受 a 模块中的exports.fn2=function(){}
如果一个模块是一个类,它是这么写的:
1 | class People{ |
此时引包就不能加大括号:
1 | import People from "./People.js" |
注意ECMAScript2016中定义类的语法:
1 | class 类名{ |
二、webpack-dev-server
The webpack-dev-server is a little Node.js Express server。可以模拟一个服务器,底层是nodejs+express,让我们的前端代码可以不在阿帕奇中但是快速能够获得一个服务器环境。并且是自动检测代码改变的,可以替代之前的watch功能。
安装:
1 | cnpm install webpack-dev-server --save-dev |
然后在package.json中创建一个 script:
1 | { |
此时我们加上的start
表示一会儿可以用npm run start
来运行程序,此时npm
将帮助我们敲击webpack-dev-server
命令。
此时webpack.config.js
文件,多了一条output
设置:
1 | var path = require("path"); |
publicPath表示要将我们的文件编译到哪个虚拟地址。注意,编译出的文件bundle.js
不会真正的生成,就是说你用资源管理器看不见这个文件。但是webpack_dev_server
在后台帮我们用express增加了一个路由,路由正是用publicPath来定义的:
此时npm run start
就可以打开http://127.0.0.1:8080/
来查看项目。8080 端口是webpack_dev_server
的默认端口。
除了publicPath之外呢,webpack.config.js
文件没有任何变化,在文件中不会体现这个东西将会开启一个服务器。也就是说体现开启服务器,就是在package.json中配置一个script。
实时监听的,任何文件变化,都会立即更改,由于不用写文件,所以要比watch要快。