Vue 大前端进阶 NPM、Babel、ES6模块化

大前端进阶 NPM、Babel、ES6模块化大前端进阶 NPM、Babel、ES6模块化

Vue快速搭建
#全局安装 vue-cli
$ cnpm install --global vue-cli
#创建一个基于webpack模板的新项目
$ vue init webpack my-project
#进入工程目录
cd my-project
#安装vue-router
npm install vue-router --save-dev
#安装element-ui
npm i element-ui -S
#安装依赖
npm install
#安装SASS 加载器
cnpm install sass-loader node-sass --save-dev
#运行项目
npm run dev


cnmp install axios -s

1、NPM包管理器
1.1、简介

官方网站:https://www.npmjs.com/
NPM全称Node Package Manager,是Node.js包管理工具,是全球最大的模块生态系统,里面所有的模块都是开源免费的;也是Node.js的包管理工具,相当于前端的Maven 。

#在命令提示符输入 npm -v 可查看当前npm版本npm -v

1、创建文件夹npm

2、项目初始化

#建立一个空文件夹,在命令提示符进入该文件夹  执行命令初始化npm init
#按照提示输入相关信息,如果是用默认值则直接回车即可。
#name: 项目名称#version: 项目版本号
#description: 项目描述
#keywords: {Array}关键词,便于用户搜索到我们的项目
#最后会生成package.json文件,这个是包的配置文件,相当于maven的pom.xml
#我们之后也可以根据需要进行修改。
#如果想直接生成 package.json 文件,那么可以使用命令npm init -y

3、修改npm镜像

NPM官方的管理的包都是从 http://npmjs.com下载的,但是这个网站在国内速度很慢。

这里推荐使用淘宝 NPM 镜像 http://npm.taobao.org/

淘宝 NPM 镜像是一个完整 npmjs.com 镜像,同步频率目前为 10分钟一次,以保证尽量与官方服务同步。

4、设置镜像地址
#经过下面的配置,以后所有的 npm install 都会经过淘宝的镜像地址下载
npm config set registry https://registry.npm.taobao.org 
#查看npm配置信息npm config list
5、npm install
#使用 npm install 安装依赖包的最新版,
#模块安装的位置:项目目录\node_modules
#安装会自动在项目目录下添加 package-lock.json文件,这个文件帮助锁定安装包的版本
#同时package.json 文件中,依赖包会被添加到dependencies节点下,类似maven中的 <dependencies>npm install jquery
#如果安装时想指定特定的版本npm install jquery@2.1.x#devDependencies节点:开发时的依赖包,项目打包到生产环境的时候不包含的依赖
#使用 -D参数将依赖添加到devDependencies节点npm install --save-dev eslint
#或npm install -D eslint
#全局安装
#Node.js全局安装的npm包和工具的位置:用户目录\AppData\Roaming\npm\node_modules
#一些命令行工具常使用全局安装的方式npm install -g webpack
#npm管理的项目在备份和传输的时候一般不携带node_modules文件夹npm install 
#根据package.json中的配置下载依赖,初始化项目
6、其他命令
#更新包(更新到最新版本)npm update 包名
#全局更新npm update -g 包名
#卸载包npm uninstall 包名
#全局卸载npm uninstall -g 包名
7、Babel

ES6的某些高级语法在浏览器环境甚至是Node.js环境中无法执行。

Babel是一个广泛使用的转码器,可以将ES6代码转为ES5代码,从而在现有环境执行执行。

这意味着,你可以现在就用 ES6 编写程序,而不用担心现有环境是否支持。

#安装
npm install -g babel-cli
#查看是否安装成功
babel --version
7.1、使用

1、创建babel文件夹

2、初始化项目

npm init -y

3、创建文件 src/example.js ,下面是一段ES6代码:

// 转码前
// 定义数据
let input = [1, 2, 3]
// 将数组的每个元素 +1
input = input.map(item => item + 1)
console.log(input)

4、配置 .babelrc

Babel的配置文件是.babelrc,存放在项目的根目录下,该文件用来设置转码规则和插件,基本格式如下。

{   
    "presets": [],   
    "plugins": []
}

presets字段设定转码规则,将es2015规则加入 .babelrc:

{    
    "presets": ["es2015"],   
    "plugins": []
}

5、安装转码器,在项目中安装

npm install --save-dev babel-preset-es2015

6、转码

# npm install --save-dev csv-loader xml-loader
# 转码结果写入一个文件
mkdir dist1
# --out-file 或 -o 参数指定输出文件
babel src/example.js --out-file dist1/compiled.js
# 或者
babel src/example.js -o dist1/compiled.js

# 整个目录转码
mkdir dist2
# --out-dir 或 -d 参数指定输出目录
babel src --out-dir dist2
# 或者
babel src -d dist2
8、自定义脚本

1、改写package.json

{    
	// ...    
	"scripts": {        
		// ...       
		"build":  "babel src\\example.js -o dist\\compiled.js"   
	},
}

2、转码的时候,执行下面的命令

mkdir dist
npm run build
9、ES6模块化规范

ES6使用export 和import来导入、导出模块

1、创建mokuai-es6文件夹

2、创建src/userApi.js文件导出模块

export function get(){
    console.log('获取数据列表')
}
export function save(){
    console.log('保存数据')
}

3、创建src/userComponent.js文件,导入模块

//只取需要的方法即可
import { get,save} from './userApi.js'
get();
save();

注意这时候程序无法运行。因为ES6的模块无法在Node.js中执行,需要用Babel编辑成WS5后在执行

4、初始化项目

npm init -y

5、配置 .babelrc

{
“presets”: [“es2015”],
“plugins”: []
}

6、安装转码器,在项目中安装

npm install --save-dev babel-preset-es2015

7、定义运行脚本,package.json中增加”build”

{
// …
“scripts”: {
“build”: “babel src -d dist”
}
}

8、执行命令转码

npm run build

9、运行程序

node dist/userComponent.js

9.1ES6模块化写法二

1.创建src/userApi2.js。导出模块

export default {
getList() {
console.log(‘获取数据列表2’)
},
save() {
console.log(‘保存数据2’)
}
}

2、创建 src/userComponent2.js,导入模块

import user from “./userApi2.js”
user.getList()
user.save()

3、执行命令转码

npm run build

4、运行程序

node dist/userComponent2.js

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值