1-es6模块化
es6新特性,主要为了开发方便
模块化指的是分开开发
模块化开发的优势:
1、比较利于团队协作
2、放置变量污染
3、es6的模块化既可以用在客户端,又可以用服务器上
2-命令行
命令行打开方式:
1、win+R 输入cmd
2、shift+鼠标右键 (win10打开powershell)
3、在文件目录下输入cmd
指令操作:
1、创建文件夹 mkdir 文件夹名称
2、删除文件夹 rmdir 文件夹名称
3、cd ../ 返回上级目录
4、f: 盘符跳转
5、cd 路径 同一盘符下操作 进入指定路径
es6模块化客户端不兼容,只能运行在服务器上或者转化才可以
node是一个平台,有了这样一个平台以后,js可以运行在服务器环境下
node环境下:
1、执行文件: node 文件名(文件名不能是node) 相当于在node环境下执行文件
3-包管理工具
包管理工具:npm(node package manager)
1、为什么会有包管理工具:
之前的开发不利于包(库文件或者框架)管理,因为每一个都有可能有不同的
版本,在合作开发的时候,每个人都有可能按照自己的喜好,使用自己喜欢
的版本,有可能会造成项目代码冲突或者代码奔溃。
2、node自带的有一个包管理工具npm
npm是一个国外网站,相当于把所有的包放在一个平台上,需要的时候去下载
自带的也有一些配置文件,约束用户使用软件的版本
3、使用nmp项目开发流程:
1、新建项目文件夹 文件夹名称必须为英文
2、初始化 npm init -y
生成package.json文件 依赖文件(所有需要的包的版本都可以写在该文件)
3、下载包 npm install 文件名字@版本号(如果不限制版本号会限制最新的)
node_modules储存的是下载的包
如果不专门写依赖,有可能写不进package.json
--save(-S) 上限以后也需要
--save-dev(-D) 测试和开发环境需要 上线以后不需要
/-g 全局安装
4、如果之前package.json如果已经写过依赖 直接 npm install/i
终止代码执行 Ctrl+c
npm是一个平台,上面放了很多安装包,自己也可定一包放在上面
因为是国外平台,由于个人网络可能下载比较慢,可以使用镜像cnpm或者yarn
如果网络不好的情况下,有可能下载失败,重新下载几个
把项目拷贝别人的时候,node_modules不用拷贝,因为可以通过package.json文件自动下载
5、卸载文件 npm/cnpm uninstall
cnpm使用方式:
1、npm install cnpm -g --registry=https://registry.npm.taobao.org
安装以后 cnpm install/i 文件名
npm只是node的一个功能而已
4-babel转码
es6模块化语法暂时不支持,需要将es6转化为es5才能执行,需要babel进行转化
流程:
1、新建文件夹(英文)
2、初始化 cnpm/npm init -y
3、下载包文件
$ npm install --save-dev babel-cli
$ npm install --save-dev babel-preset-es2015
4、新建.babelrc文件
5、使用babel指令进行转码 将es6转化为es5 babel 源文件 -d 目标文件es5
如何解决babel无法转码问题:
1、需要找到安装目录,在安装目录下执行指令,软件一般安装在bin文件目录下
输入babel/.\babel ../../src -d ../../dist
在dist下执行node 文件名.js执行代码
2、把该软件配置到环境变量里面 --- 找到文件所在地址复制到环境变量
地址:E:\html\js高级课程\第五节课\prac\node_modules\.bin
环境变量(执行一个指令的时候,如果命令行所在的目录不存在,会去环境变量里面寻找
如果能找到就会执行该指令,如果找不到就会报错)
操作步骤:
1、右键点击计算机-属性
2、进入高级系统设置
3、在高级选项下面进入环境变量
4、双击打开Path 新建一个路径
3、配置快捷键
在package.json文件配置(打开之后找到scripts的键值设置快捷键)
"build":"babel src -d dist"
指向快捷键指令 npm run build
es6语法
导入数据
语法:import {变量名} from './文件名';
导入的时候可以取别名
import {变量名 as 随便取} from './文件名';
导出数据
语法:export var 变量名
导出的时候可以取别名
export {变量名 as 随便取};
导入导出的时候,不能使用表达式
导入的语法会自动提升到整个作用域最前面
导入的时候不能使用变量
匿名导出语法;export default
匿名导入的时候:名字可以自己来定